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
是循环中当前元素的一个参数。这意味着您对其值所做的每一次更改也将更改数组中的元素