我有几个或大量无法预见的数组。 我想访问它们并更改其密钥。我猜有一个循环。
Array
(
[count] => 1
[0] => Max, Mustermann
[1] => Job
[2] => Companyname
[3] => IT
[4] => CEO
[5] => N610-611
[6] => +49 (30) 111111
[7] => +49 (30) 111111
[8] => max@company.de
)
Array
(
[count] => 1
[0] => Alicia Keys
[1] => Job
[2] => Companyname
[3] => IT
[4] => CEO
[5] => N610-N611
[6] => +49 11111
[7] => +49 11111
[8] => alikey@company.de
)
我想要这样的输出:
Array
(
[count] => 1
[Name] => Max, Mustermann
[Jobname] => Job
[Company] => Companyname
[Division] => IT
[CEO] => CEO
[Room] => N610-611
[Tel] => +49 (30) 111111
[Fax] => +49 (30) 111111
[E-Mail] => max@company.de
)
Array
(
[count] => 1
[Name] => Alicia Keys
[Job] => Job
[Company] => Companyname
[Division] => IT
[CEO] => CEO
[Room] => N610-N611
[Tel] => +49 11111
[Fax] => +49 11111
[E-Mail] => alikey@company.de
)
我不确定是否要使用foreach或for循环,或者是否需要循环。我知道更改键并不是那么简单,而是读取包含要更改的键的第二个数组。但我不确定该怎么做
答案 0 :(得分:4)
您可以将array_combine()与foreach()一起使用预定义的键数组
//predefined keys array
$index_array = array('count','Name','Jobname','Company','Division','CEO','Room','Tel','Fax','E-Mail');
foreach($array as &$value){
$value = array_combine($index_array ,$value);
}
注意:-如果您的数组是一维的,则:
$array = array_combine($index_array ,$array);
说明:-
foreach()
是因为它会处理索引并提高可读性。 (使用undefined index error
循环使您避免 for()
发生多次)
&$value
是passing by reference,因此子数组中的任何更改都将自动反映在原始/初始数组中。
答案 1 :(得分:1)
如果您具有一维数组,并且想要更改此数组的键。定义具有新键的数组并在循环中更改数组的键就足够了。我在下面的代码片段中举一个例子:
<?php $arr = [
'count' => 1,
'0' => 'Max Mustermann',
'1' => 'Job',
'2' => 'Companyname',
'3' => 'IT',
'4' => 'CEO',
'5' => 'N610-611',
'6' => '+49 (30) 111111',
'7' => '+49 (30) 111111',
'8' => 'max@company.de',
];
$arr2 = ['count', 'Name', 'Jobname', 'Company', 'Division', 'CEO', 'Room', 'Tel', 'Fax', 'E-Mail'];
$index = 0;
foreach($arr as $oldkey => $value) {
$arr[$arr2[$index]] = $arr[$oldkey];
unset($arr[$oldkey]);
$index++;
}
print_r($arr);
您可以在此link
中看到输出