如何在不切换键PHP的情况下切换数组值

时间:2017-03-08 08:50:10

标签: php arrays sorting

请帮助我,我有像这样的arrey值: -

arr1 = array('key1'=> array('name'=> 'ABC1', 'age'=> 26));
arr2 = array('key2'=> array('name'=> 'ABC2', 'age'=> 50));
arr3 = array('key3'=> array('name'=> 'ABC3', 'age'=> 44));

我想要的结果如下: -

arr1 = array( 'key1'=> array('name'=> 'ABC2', 'age'=> 50) );
arr2 = array( 'key2'=> array('name'=> 'ABC3', 'age'=> 44) );
arr3 = array( 'key3'=> array('name'=> 'ABC1', 'age'=> 26) );

2 个答案:

答案 0 :(得分:1)

如果您认为您的阵列是这样的。它可能会有所帮助

cv::Mat

答案 1 :(得分:0)

您可以这样做:

$tmp = $arr3['key3'];
$arr3['key3'] = $arr2['key2'];
$arr2['key2'] = $tmp;

如果你想要怪异的方式或者你需要对这个数组进行排序 - 你可以这样做:

$aggregate = array_merge($arr1, $arr2, $arr3);
uasort($aggregate, function ($el, $nextEl) {
    if ($el['age'] == $nextEl['age']) return 0;
    return ($el['age'] > $nextEl['age'] ? -1 : 1);
});
$aggregate = array_chunk($aggregate, 1, true);
for($i = 1; $i <= 3; $i++){
    ${'arr'.$i} = array_shift($aggregate);
}