PHP数组排序的问题

有两个数组如下:

$aray1 = (
    'key3' => 'value3',
    'key2' => 'value2',
    'key1' => 'value1
);

$aray2 = ('key1', 'key3', 'key2');  //看清楚了,顺序不是123哦

请问php有没有内置的函数可以通过$array2将$array1排序成如下格式:

$aray1 = (
    'key1' => 'value1',
    'key3' => 'value3',
    'key2' => 'value2
);

我看了下array_multisort()的文档,但是好像不支持。

阅读 4.4k
9 个回答

貌似没有,array_multisort()主要是对多维数组排序

用用户自定义排序函数usort(),不过还是要自己写

foreach($array2 as $i => $key) {
    $result[$key] = $array1[$key];
}
var_dump($result);
$data = array();

array_walk($aray2,function($value, $key) use($aray1, &$data){
    $data[$value] = $aray1[$value];    
});

print_r($data);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题