Php 访问多个阵列并更改其密钥
我有几个或一个数组的数量是无法预见的。 我想访问它们并更改它们的密钥。我猜是一个循环Php 访问多个阵列并更改其密钥,php,arrays,key,Php,Arrays,Key,我有几个或一个数组的数量是无法预见的。 我想访问它们并更改它们的密钥。我猜是一个循环 Array ( [count] => 1 [0] => Max, Mustermann [1] => Job [2] => Companyname [3] => IT [4] => CEO [5] => N610-611 [6] => +49 (30) 111111 [7] =>
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循环,或者是否需要循环。我知道更改密钥并不是那么简单,而是读取第二个数组,该数组保存您要更改的密钥。但我不知道如何做到这一点您可以与预定义的键数组一起使用
//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()。(使用for()
循环可避免多次发生未定义索引错误)
&$value
是,因此子数组中的任何更改都将自动反映在原始/初始数组中。您可以与预定义的键数组一起使用
//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()。(使用for()
循环可避免多次发生未定义索引错误)
&$value
是,因此子数组中的任何更改都将自动反映在原始/初始数组中。如果您有1D数组,并且希望更改此数组的键。用新键定义一个数组并在循环中更改数组的键就足够了。我在以下代码片段中举了一个例子:
<?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);
如果您有一个1D数组,并且希望更改该数组的键。用新键定义一个数组并在循环中更改数组的键就足够了。我在以下代码片段中举了一个例子:
<?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);
这是一个多维数组吗?还是有几个一维数组?这是多维数组吗?或者你们有几个一维阵列?我想这是我想要的,但我必须先检查一下。你能给我解释一下为什么foreach和not for,以及&$value有什么意义吗?@RicardoMüller foreach比for可读性强得多,但它只是一种偏好(如果你愿意,可以使用for)&$value
是循环中当前元素的一个参数。也就是说,您对其值所做的每一次更改都会更改数组中的元素。我想这是我想要的,但我必须先检查一下。你能给我解释一下为什么foreach和not for,以及&$value有什么意义吗?@RicardoMüller foreach比for可读性强得多,但它只是一种偏好(如果你愿意,可以使用for)&$value
是循环中当前元素的一个参数。这意味着您对其值所做的每一次更改也将更改数组中的元素