使用带有sortstring的数组按键排序数组

时间:2014-03-12 10:47:17

标签: php arrays sorting

是否可以使用自定义顺序按键对数组进行排序? 我有一个数组,其中包含代表订单的字符串。

$order = array('ccc','aaa','xxx','111');
$myarray = array('ccc' => 'value1','aaa' => 'value2','xxx' => 'value3',
                     'BBB' => 'value11','ddd' => 'value31')

现在我希望数组与元素一起使用键' ccc'在第一个位置,带有键aaa的元素......以及最后应该是不在sortlist中的元素。

这可能吗?

编辑:第二个' CCC'是我的错 - 抱歉

2 个答案:

答案 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)

在行动https://eval.in/118734

中查看此内容
<?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);

?>