PHP根据第二个数组中键的顺序对一个数组的键和值进行排序

时间:2016-04-08 19:22:22

标签: php arrays sorting

我查看了与此问题相关的stackoverflow的前15个问题,不幸的是,没有一个问题与我的问题相符。

我有两个数组。第一个订单是我需要第二个订单:

Array
(
    [1] => name
    [2] => value
    [3] => cost
    [4] => customer
    [5] => date
    [6] => country

)

我的第二个数组有可能以多种方式之一进行格式化,但这只是一个例子:

Array
(
    [country] => US
    [customer] => Acme
    [date] => 2016-04-08
    [name] => Brian
    [value] => 0
    [cost] => 22

)

我需要对此数组进行排序,使其与排序数组遵循相同的顺序,最终看起来像这样:

Array
(
    [name] => Brian
    [value] => 0
    [cost] => 22
    [customer] => Acme
    [date] => 2016-04-08
    [country] => US
)

对我来说最有意义的帖子是PHP - Sort array elements based on another array's elements :),它通过在第一个排序数组上使用array_flip()来创建查找表,但是从那里它发生故障并且不起作用我

我该怎么做?

修改

我已经看过帖子,这个问题已被标记为副本,代码对我不起作用。

以下是该示例:

//$x = my incorrectly-sorted array in its entirety
$p = array($columns_list[1], $columns_list[2], $columns_list[3], $columns_list[4], $columns_list[5], $columns_list[6], $columns_list[7], $columns_list[8], $columns_list[9], $columns_list[10]);            

    $array = array_map(function($x)use($p){      
      return array_replace(array_flip($p), $x);
    }, $array);

0 个答案:

没有答案