我想使用Array 1的'id'数组来排序Array 2中的所有其他兄弟数组.'id'数组应该充当$array1
和{{$array2
中所有其他数组的模式。 1}}。
通过示例更容易解释。
我有以下数组,数组1:
Array
(
[id] => Array
(
[0] => 1
[1] => 3
[2] => 2
)
[headline] => Array
(
[0] => test 1
[1] => test 3
[2] => test 2
)
)
另一个阵列,阵列2:
Array
(
[id] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
[headline] => Array
(
[0] => tc test 1
[1] => tc test 2
[2] => tc test 3
)
)
我希望看起来如下:
Array
(
[id] => Array
(
[0] => 1
[1] => 3
[2] => 2
)
[headline] => Array
(
[0] => tc test 1
[1] => tc test 3
[2] => tc test 2
)
)
现在我试图用foreach语句强制它(并且失败),但必须有更好的方法。
答案 0 :(得分:1)
这是一种“假”排序,因为我通过foreach()
循环填充空数组,然后我替换原始数组:
$array1 = [ 'id' => [ 1,3,2 ], 'headline' => [ 'test 1','test 3','test 2' ] ];
$array2 = [ 'id' => [ 1,2,3 ], 'headline' => [ 'test 1','test 2','test 3' ] ];
$result = array();
foreach( $array1['id'] as $val )
{
$key = array_search( $val, $array2['id'] );
$result['id'][] = $array2['id'][$key];
$result['headline'][] = $array2['headline'][$key];
}
$array2 = $result;
print_r( $array2 );
输出:
Array
(
[id] => Array
(
[0] => 1
[1] => 3
[2] => 2
)
[headline] => Array
(
[0] => test 1
[1] => test 3
[2] => test 2
)
)
我通过条件'id'数组执行foreach
循环,找到要排序的数组中的每个值,检索其键并使用它来为结果数组添加值。
对此解决方案并不感到自豪,但这是。