用 php 交换多维数组键
Swap multidimensional array keys with php
我有两个键,想在多维数组中交换它们。
我参考了这些Swap array values with php,如何用索引交换数组中的两个值?
参考但没有得到任何帮助。
我有这个数组,
[
'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]);
但是没有成功。我哪里错了?
尝试使用临时数组,像这样:
$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;
可以单行使用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',
)
我有两个键,想在多维数组中交换它们。
我参考了这些Swap array values with php,如何用索引交换数组中的两个值? 参考但没有得到任何帮助。
我有这个数组,
[
'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]);
但是没有成功。我哪里错了?
尝试使用临时数组,像这样:
$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;
可以单行使用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',
)