I have array structure which looks like this.
Array
(
[category1] => Array
(
[2694] => Array
(
[node_name] => "B"
)
[2695] => Array
(
[node_name] => "A"
)
[2696] => Array
(
[node_name] => "C"
)
)
)
Array
(
[category1] => Array
(
[2695] => Array
(
[node_name] => "A"
)
[2694] => Array
(
[node_name] => "B"
)
[2696] => Array
(
[node_name] => "C"
)
)
)
function cmp($a, $b) {
return $a['node_name'] > $b['node_name'] ? 1 : -1;
}
You're doing the right thing I expect.
<?php
$cats = array(
'category1' => array(
2694 => array('node_name' => 'B'),
2695 => array('node_name' => 'A'),
2696 => array('node_name' => 'C'),
),
'category2' => array(
2691 => array('node_name' => 'T'),
2692 => array('node_name' => 'S'),
2693 => array('node_name' => 'A'),
)
);
function cmp($a, $b) {
return $a['node_name'] > $b['node_name'] ? 1 : -1;
}
foreach ($cats as $category => $data) {
uasort($data, 'cmp');
$cats[$category] = $data;
}
var_dump($cats);
Output:
array(2) {
["category1"]=>
array(3) {
[2695]=>
array(1) {
["node_name"]=>
string(1) "A"
}
[2694]=>
array(1) {
["node_name"]=>
string(1) "B"
}
[2696]=>
array(1) {
["node_name"]=>
string(1) "C"
}
}
["category2"]=>
array(3) {
[2693]=>
array(1) {
["node_name"]=>
string(1) "A"
}
[2692]=>
array(1) {
["node_name"]=>
string(1) "S"
}
[2691]=>
array(1) {
["node_name"]=>
string(1) "T"
}
}
}