我有两个键,想要在多维数组中交换它们。
我已经参考了这些Swap array values with php,How to swap two values in array with indexes? 引用,但没有得到任何帮助。
我有这个数组,
[
'box-a' => 'email',
'box-b' => 'job',
'box-c' => 'company',
'box-d' => 'candidate',
'box-e' => 'calender',
'box-f' => 'smartlist',
'box-g' => 'analytics',
]
我想交换两个数组键box-b
和box-e
,但数组值应保持不变。
我试过了,
list($array[$swap_a], $array[$swap_b]) = array($array[$swap_b], $array[$swap_a]);
但没有成功。我哪里错了?
答案 0 :(得分:2)
尝试使用临时数组,如下所示:
$a = [
'box-a' => 'email',
'box-b' => 'job',
'box-c' => 'company',
'box-d' => 'candidate',
'box-e' => 'calender',
'box-f' => 'smartlist',
'box-g' => 'analytics',
];
$temp = $a['box-e'];
$a['box-e'] = $a['box-b'];
$a['box-b'] = $temp;
答案 1 :(得分:2)
您可以在单行中使用array_replace()
,并避免使用临时数据存储。
代码:(Demo)
$a = [
'box-a' => 'email',
'box-b' => 'job',
'box-c' => 'company',
'box-d' => 'candidate',
'box-e' => 'calender',
'box-f' => 'smartlist',
'box-g' => 'analytics'
];
var_export(array_replace($a,['box-b'=>$a['box-e'],'box-e'=>$a['box-b']]));
输出:
array (
'box-a' => 'email',
'box-b' => 'calender',
'box-c' => 'company',
'box-d' => 'candidate',
'box-e' => 'job',
'box-f' => 'smartlist',
'box-g' => 'analytics',
)