是否有一个标准的PHP函数可以更改关联数组的索引名称?
$ a1 = array(‘one’=&gt; 1,‘two’=&gt; 2,‘three’=&gt; 3);$ new_index_names = array(‘one’=&gt;’ ONO </跨度> ”, ‘2’=&GT; ‘DOS’, ‘3’=&GT; ‘TRES’);
$ a2 = change_index_names($ a1,$ new_index_names);
的print_r($ A2);
// $ a2应该相应地更改索引名称,如下所示:// array(‘ ONO </跨度> ’=大于1,‘ DOS ’=大于2,‘ TRES’ =→3)
编辑请注意
你不需要 array_values 要获得所需的输出,您可以使用
array_values
array_combine($new_index_names,$a1);
到目前为止我见过的最佳答案:
foreach ($a1 as $k => $v) $a2[$new_index_names[$k]] = $v;
积分转到jh1711
以前的答案不考虑顺序 $a1 和 $new_index_names ,所以我把我的解决方案如下:
$a1
$new_index_names
$a1 = array('one' => 1, 'two' => 2, 'three' => 3, 'zero' => 0); $new_index_names = array('zero' => 'zero', 'one' => 'ono', 'two' => 'dos', 'three' => 'tres'); array_combine( $new_index_names, str_replace(array_keys($a1), array_values($a1), array_keys($new_index_names)) ); Array ( [zero] => 0 [ono] => 1 [dos] => 2 [tres] => 3 )
假设两个数组具有相同的计数,则有一种方法 array_combine() 和 array_values()
array_combine()
array_values()
$a2 = array_combine(array_values($new_index_names), $a1);
不只是一个功能,但你可以使用 array_values 获取第一个数组的值,和 array_combine 设置新密钥
array_combine