Я просмотрел все ответы на вопрос о сортировке многомерных массивов в PHP на Stack Overflow, но никто не ответил на мой вопрос.Расширенная сортировка многомерного массива в PHP
Из различных ответов я понял, что я должен использовать либо функцию PHP usort
или функцию PHP array_multisort
, но я не знаю, как применить их к моей весьма специфической структуре массива:
Вот мой переменная $array
:
Array
(
[0] => Array
(
[field1] => 10
[field2] => 100
[field3] => 100
[subarray] => Array
(
[0] => Array
(
[field1] => 10
[field2] => 100
[field3] => 100
)
[1] => Array
(
[field1] => 10
[field2] => 100
[field3] => abcORDERBYTHIS
)
)
)
[1] => Array
(
[field1] => 10
[field2] => 100
[field3] => 100
[subarray] => Array
(
[0] => Array
(
[field1] => 10
[field2] => 100
[field3] => 100
)
[1] => Array
(
[field1] => 10
[field2] => 100
[field3] => ghiORDERBYTHIS
)
)
)
[2] => Array
(
[field1] => 10
[field2] => 100
[field3] => 100
[subarray] => Array
(
[0] => Array
(
[field1] => 10
[field2] => 100
[field3] => 100
)
[1] => Array
(
[field1] => 10
[field2] => 100
[field3] => defORDERBYTHIS
)
)
)
)
Я хотел бы иметь возможность отсортировать этот массив по field3
массиву в последнего в subarray
. Доступ к этому элементу достаточно легко с PHP end
функции следующим образом:
<?php
foreach($array as $array_single){
foreach(end($array_single['subarray']) as $sub_array){
echo $sub_array;
}
}
?>
И теперь я застрял в том, как конкретно разобраться в этом многомерный массив в алфавитном порядке, так что мы получаем следующий результат:
$array[0]
- Остатки на вершине, потому что значениеfield3
являетсяabcORDERBYTHIS
$array[2]
- Прыгает в середине, так как значениеfield3
являетсяdefORDERBYTHIS
$array[1]
- теперь на дне, потому что значениеfield3
являетсяghiORDERBYTHIS
Заранее спасибо!
Такие передовые сортировки массива часто DIY. –
Ouch @JasonMcCreary - не то, что я хочу услышать! ;) –
Извините. Хотя PHP более 100 функций массива, нет серебряной пули. Это не означает, что комбинация может не предоставить вам то, что вы хотите. –