Сначала сохраните ключи вашего массива - затем с помощью array_value
преобразуйте в целочисленные ключи, чтобы вы могли использовать оператор ...
.
Затем вы можете использовать array_filter
с функцией null
дляреорганизовать свой массив.Следующим шагом будет возврат ключей с помощью array_map
и array_combine
.
Последний шаг - сортировка по «данным» с помощью usort
Рассмотрим следующий пример:
$arr = ["date" => ["3", "7", "5"], "name" => ["aa", "bb", "cc"]]; // this can have a lot more sub-array inside
$keys = array_keys($arr); // extract the keys for later use
$res = array_map(null, ...array_values($arr)); // transposed the array
$res = array_map(function ($e) use ($keys) {return array_combine($keys, $e);}, $res); // return the keys to the transposed array
usort($res, function ($a, $b) {return strcmp($a['date'], $b['date']);} ); // sort all by "date"
Ссылка:
ключи массива , фильтр массива , карта массива , usort , значения массива
Уведомление @MarcoS опубликовать комментарий относительно сравнения дат