<?php
$array = [
[
'name' => 'Foo',
'children' => [
[
'name' => 'B',
'children' => []
],
[
'name' => 'A',
'children' => []
]
]
],
[
'name' => 'Bar',
'children' => [
[
'name' => 'Z',
'children' => []
],
[
'name' => 'X',
'children' => []
],
[
'name' => 'Y',
'children' => []
]
]
]
];
usort($array, $f = function(&$x, &$y) use (&$f){
usort($x['children'], $f);
usort($y['children'], $f);
return strcasecmp($x['name'], $y['name']);
});
var_dump($array);
preferences:
42.42 ms | 402 KiB | 5 Q