为了节省输入每个数组的键名,我希望能够构建像...这样的列表。
$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个键。
我设置的功能没有问题,但它分配了我不确定如何操作的键名。对不起,如果我的术语不准确,但希望我解释得很好。
答案 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
)
)