0
我有一個數組與數組在PHP中的數組,我想根據每個元素內的字段排序數組的頂層,我也想排序數組基於該元素的數組的元素在每個元素內。 (見例子)。我想要它,所以最後,$data
第一個項目的'primary'
價值'第一'然後'第二'。我也希望它在'第一'和'第二'的範圍內,'secondary'
字段下的數組首先具有'val'
'foo'然後'bar'(對'第一'和'第二')使用usort排列數組陣列PHP
$data = array (
array (
'myid' => 4,
'primary' => 'second',
'secondary' => array (
array (
'myid' => 10,
'val' => 'bar',
),
array (
'myid' => 8,
'val' => 'foo',
),
),
),
array (
'myid' => 2,
'primary' => 'first',
'secondary' => array (
array (
'myid' => 10,
'val' => 'bar',
),
array (
'myid' => 8,
'val' => 'foo',
),
),
),
);
function mysort($a, $b) {
return $a['myid'] > $b['myid'];
}
echo "pre sort:\n";
print_r($data);
usort($data, 'mysort');
echo "post top level sort:\n";
print_r($data);
foreach ($data as $k=>$item) {
usort($item['secondary'], 'mysort');
echo "Second Level Item sort:\n";
print_r($item['secondary']);
}
echo "post second level sort:\n";
print_r($data);
爲什麼我會得到以下最終輸出?
post second level sort:
Array
(
[0] => Array
(
[myid] => 2
[primary] => first
[secondary] => Array
(
[0] => Array
(
[myid] => 10
[val] => bar
)
[1] => Array
(
[myid] => 8
[val] => foo
)
)
)
[1] => Array
(
[myid] => 4
[primary] => second
[secondary] => Array
(
[0] => Array
(
[myid] => 10
[val] => bar
)
[1] => Array
(
[myid] => 8
[val] => foo
)
)
)
)
順便說一下,我使用PHP 5.2.17。
謝謝!我覺得那是發生了什麼,但不知道要用'&'。 – Max