我有一个有趣的挑战。我有一个看起来像这样的数组:
array(
[1] = array(
'fruit' => 'Banana'
),
[2] = array(
'fruit' => 'Apple'
),
[3] = array(
'fruit' => 'Grapes'
)
)
我需要根据水果对数组进行排序,假设水果有这个优先级:
#1:Apple
#2:香蕉
#3:葡萄
最终输出应该是:
array(
[2] = array(
'fruit' => 'Apple'
),
[1] = array(
'fruit' => 'Banana'
),
[3] = array(
'fruit' => 'Grapes'
)
)
这是通过某种usort()技巧来完成的吗?
答案 0 :(得分:0)
如果您不需要保持索引关联:
foreach($array as $key => $values) {
$fruit[$key] = $values['fruit'];
}
array_multisort($fruit, SORT_ASC, $array);
答案 1 :(得分:0)
使用usort的示例:
<?php
$arr = array(
array(
'fruit' => 'Banana'
),
array(
' fruit' => 'Apple'
),
array(
'fruit' => 'Grapes'
)
);
function sortByFruit($arr1, $arr2)
{
if ($arr1['fruit'] == $arr2['fruit']) {
return 0;
} elseif ($arr1['fruit'] < $arr2['fruit']) {
return -1;
} else {
return 1;
}
}
usort($arr, 'sortByFruit');