PHP使用现有数组的新数组分配数组键

时间:2014-12-14 23:49:36

标签: php arrays key

为了节省输入每个数组的键名,我希望能够构建像...这样的列表。

$lists = array (
0 => array ('A', 'B', 'C', 'D', 'E');
1 => array ('A', 'B', 'C', 'D', 'E');
2 => array ('A', 'B', 'C', 'D', 'E');
)

..然后为所有人分配相同的密钥名称(在之前或之后)..

Key1, Key2, Key3, Key4, Key5

..所以当他们被召唤时,我可以做类似的事情。

foreach($lists as $list) {
    showList($list);
} 

..然后在showList()函数中,我可以通过键名调用5个键。

我设置的功能没有问题,但它分配了我不确定如何操作的键名。对不起,如果我的术语不准确,但希望我解释得很好。

2 个答案:

答案 0 :(得分:0)

array_combine将根据键数组和值数组生成关联数组。

$keys = array('Key1', 'Key2', 'Key3', 'Key4', 'Key5');
foreach ($lists as $list) {
    showList(array_combine($keys, $list));
}

如果您想永久修改$lists,可以执行以下操作:

foreach ($lists as &$list) {
    $list = array_combine($keys, $list);
}

引用变量&$list使得替换元素。

答案 1 :(得分:0)

试试这个:

<?php
$keys = array('Key1', 'Key2', 'Key3', 'Key4', 'Key5');
$lists = array (
                    array ('A', 'B', 'C', 'D', 'E'),
                    array ('A', 'B', 'C', 'D', 'E'),
                    array ('A', 'B', 'C', 'D', 'E')
                );

function showList($list){
    global $keys;
    return array_combine($keys, $list);
}

$output = array_map("showList", $lists);

echo "<pre>";
print_r($output);
?>

结果:

Array
(
    [0] => Array
        (
            [Key1] => A
            [Key2] => B
            [Key3] => C
            [Key4] => D
            [Key5] => E
        )

    [1] => Array
        (
            [Key1] => A
            [Key2] => B
            [Key3] => C
            [Key4] => D
            [Key5] => E
        )

    [2] => Array
        (
            [Key1] => A
            [Key2] => B
            [Key3] => C
            [Key4] => D
            [Key5] => E
        )

)