У меня есть 4-мерный ассоциативный массив со всеми его ключевыми динамиками c. Я хочу отсортировать массив по значению его последнего потомка. Для справки, это массив:
$array = array(
"Africa" => array(
"Egypt" => array(
"20" => array(
"basicInfo" => array('population' => 'xxx', 'size' => 'xxx')
)
),
"Sudan" => array(
"249" => array(
"basicInfo" => array('population' => 'xxx', 'size' => 'xxx')
)
),
...
...
),
"Europe" => array(
"Greece" => array(
"30" => array(
"basicInfo" => array('population' => 'xxx', 'size' => 'xxx')
)
),
"Netherlands" => array(
"31" => array(
"basicInfo" => array('population' => 'xxx', 'size' => 'xxx')
)
),
...
...
),
...
...
);
В приведенном выше массиве я хочу отсортировать по численности населения в порядке убывания. До сих пор я пробовал uasort
, array_multisort
, но я думаю, что я делаю это неправильно. Может кто-нибудь помочь мне разобраться в этом?
uasort($records[$continent][$country][$countryCode]['basicInfo'], array($this, 'sortByPopulation' ));
Чтобы было ясно, я сортирую его в for l oop, пока он создается. Поскольку все переменные внутри массива являются динамическими c, я думаю, что их невозможно отсортировать после генерации массива.
Окончательный результат должен быть в том же формате, что и выше, континенты> страны> коды> basicInfo.
Спасибо