是否可以使用自定义顺序按键对数组进行排序? 我有一个数组,其中包含代表订单的字符串。
$order = array('ccc','aaa','xxx','111');
$myarray = array('ccc' => 'value1','aaa' => 'value2','xxx' => 'value3',
'BBB' => 'value11','ddd' => 'value31')
现在我希望数组与元素一起使用键' ccc'在第一个位置,带有键aaa的元素......以及最后应该是不在sortlist中的元素。
这可能吗?
编辑:第二个' CCC'是我的错 - 抱歉
答案 0 :(得分:0)
我只是想到这个,因为我遇到了与array_multisort()和ksort()类似的问题。
但是在你的情况下,如果代码片段是正确的,则不可能作为第二个' ccc'值为' value11'将覆盖前一个。
php > $myarray = array('ccc' => 'value1','aaa' => 'value2','xxx' => 'value3','ccc' => 'value11','ddd' => 'value31');
php > print_r($myarray);
Array
(
[ccc] => value11
[aaa] => value2
[xxx] => value3
[ddd] => value31
)
。
答案 1 :(得分:0)
<?php
$order = array('ccc','xxx','aaa','111');
$myarray = array('ccc' => 'value1','aaa' => 'value2','xxx' => 'value3',
'ddd' => 'value31');
$temp = array();
foreach($order as $o) {
if(array_key_exists($o, $myarray)) {
$temp[$o] = $myarray[$o];
}
}
$new = array_merge($temp, $myarray);
print_r($new);
?>