访问多个数组并更改其键

时间:2018-10-30 11:30:37

标签: 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] => +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循环,或者是否需要循环。我知道更改键并不是那么简单,而是读取包含要更改的键的第二个数组。但我不确定该怎么做

2 个答案:

答案 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);
}

输出:-{https://3v4l.org/VnmWJ

注意:-如果您的数组是一维的,则:

$array = array_combine($index_array ,$array);

输出:-{https://3v4l.org/R8oY0

说明:-

foreach()是因为它会处理索引并提高可读性。 (使用undefined index error循环使您避免 for() 发生多次)

&$valuepassing 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

中看到输出