您需要准备首先排序的阵列。然后排序然后通过引用进行排序,允许您第二次遍历它,但这次按array_multisort()
排序。
<?php
foreach($jsonObj as $items) {
foreach($items['items'] as $key => $itemlist) {
$positions[$key] = $itemlist['position'];
$names[$key] = $itemlist['name'];
}
array_multisort($positions, SORT_ASC, $items['items']);
foreach($items['items'] as $itemlist) {
echo $itemlist['name'], "<br />";
// Now in asc order of positions
}
}
这样做的好处是,如果其他属性出现,你想排序你可以做到这一点。例如,如果有一个机会,“位置”将是两个人是相同的,然后你可以按字母顺序排序他们的名字等等。
键盘背后
完整的解决方案,两个答案相比: http://codepad.viper-7.com/5yJ72S
前第二次尝试此foreach循环排序($ items [“items”]); – 2013-04-04 09:44:14
我明白我必须使用某种排序。举一个例子。我不明白的是在打印之前我没有排序。 – 2013-04-04 09:44:42
我不太确定我关注。 如果您没有阵列,首先要如何打印它? – 2013-04-04 09:45:47