比较三个不同的数组并按相同的顺序排列它们

时间:2017-11-14 07:42:52

标签: php arrays

我尝试以相同的顺序排列三个不同的数组,所有三个数组的大小相同,但值的顺序不同。我怎样才能将它们排列成相同的顺序?

第一个阵列:

Array(
    [0] => Array( [id] => 1 )
    [1] => Array( [id] => 12 )
    [2] => Array( [id] => 25 )
    [3] => Array( [id] => 54 )
)

第二阵列:

Array(
    [0] => Array( [id] => 24 )
    [1] => Array( [id] => 12 )
    [2] => Array( [id] => 54 )
    [3] => Array( [id] => 1 )
)

第三阵列:

Array(
    [0] => Array( [id] => 54 )
    [1] => Array( [id] => 25 )
    [2] => Array( [id] => 1 )
    [3] => Array( [id] => 12 )
)

预期的最终数组结果:

Array(
    [0] => Array( [id] => 1 )
    [1] => Array( [id] => 12 )
    [2] => Array( [id] => 25 )
    [3] => Array( [id] => 54 )
)

所有三个数组的排列方式与第一个数组相同。我尝试了很多,但它没有用。

2 个答案:

答案 0 :(得分:0)

如果您希望结果按第一个数组的顺序排列,请尝试使用第一个数组对数组进行多重排序 在array_multisort($ ARR2,$ arrone); 在array_multisort($ ARR3,$ arrone);

答案 1 :(得分:0)

要使所有数组的排列方式与给定的参考数组相同,您可以使用usort的自定义搜索功能。

func()

这对于您的第二个数组不起作用,因为参考数组中不存在id“24”。