登录

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()的文档,但是好像不支持。

# PHP
怪我咯怪我咯2153 天前458 次浏览

全部回复(9) 我要回复

  • 阿神

    阿神2017-04-10 16:52:15

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

    回复
    0
  • PHP中文网

    PHP中文网2017-04-10 16:52:15

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

    回复
    0
  • 天蓬老师

    天蓬老师2017-04-10 16:52:15

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

    回复
    0
  • PHP中文网

    PHP中文网2017-04-10 16:52:15

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

    回复
    0
  • 高洛峰

    高洛峰2017-04-10 16:52:15

    根据我的经验,是没有这样的内部函数的

    回复
    0
  • 天蓬老师

    天蓬老师2017-04-10 16:52:15

    可以自己写一个方法

    回复
    0
  • 高洛峰

    高洛峰2017-04-10 16:52:15

    可以自己写一个方法

    回复
    0
  • PHP中文网

    PHP中文网2017-04-10 16:52:15

    自己写一个呗

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 16:52:15

    只有自己根据排序规则写一个了

    回复
    0
  • 取消回复发送