У меня возникли проблемы с PHP usort()
. Я в настоящее время есть несколько индексированный массив, который выглядит следующим образом:USort Multi Index Array - не возвращается правильно
Array
(
[0] => Array
(
[0] => Array
(
[title] => c
[more_fields] => '...'
)
[1] => Array
(
[title] => a
[more_fields] => '...'
)
[2] => Array
(
[title] => b
[more_fields] => '...'
)
[3] => Array
(
[title] => xz
[more_fields] => '...'
)
)
)
Я пытаюсь Переберите массива и сортировки каждого индекса по индексу title
. Вот код, без какой-либо из моих тестовых входов:
foreach($my_arr as $arr) {
if(count($arr) > 1) {
usort($arr, function($a, $b) {
return strcasecmp($a['title'], $b['title']);
});
}
}
Теперь я хотел бы ожидать, что работать, и я знаю, что я поражая правильные индексы, если эхо из $a['title']
и $b['title']
до моего возвращения я получаю данные, выглядит следующим образом:
a _ c | xz _ a | b _ a | c _ a | b _ c | xz _ b | c _ b | xz _ c
Это хорошо и денди, но как только foreach
закончена, мой массив остается неизменным. Похоже, глядя на документы PHP, что usort()
передает массив по ссылке и возвращает логические значения при завершении. Что мне не хватает в моем usort()
, который оставляет мой массив неизменным?
Я должен был знать как работает foreach, но я думаю, мой мозг продолжал замалчивать его и обвинять в беспорядке. Спасибо, что указали это на вашу помощь! будет приниматься, когда разрешено. –