我正在尝试使用动态数据创建一个关联数组,但遇到了一些麻烦。
我想从MySQL查询中获取行时生成一个类似于以下内容的数组。
Array
(
[0] = Array
(
[name] => First
)
[1] = Array
(
[name] => Second
)
[2] = Array
(
[name] => Third
)
[3] = Array
(
[name] => Fourth
)
[4] = Array
(
[name] => Fifth
)
)
我一直在尝试使用array_merge,但它没有给我我想要的结果。 Array_merge显然在foreach中的操作与在外部操作相同(我使用和不使用循环运行相同的代码,没有按照我需要的方式运行)。
基本上,这就是我目前正在做的事情(这不起作用):
foreach($idList as $id)
{
$arr[] = array_merge(array(), array('name' => $id));
}
这给了我这样的输出:
Array
(
[0] = Array
(
[name] => first
)
[1] = Array
(
[0] = Array
(
[name] => first
)
[name] => second
)
[2] = Array
(
[0] = Array
(
[name] => first
)
[1] = Array
(
[0] = Array
(
[name] => first
)
[name] => second
)
[name] => third
)
)
答案 0 :(得分:1)
你在这里遇到了一些问题。
主要是,您不能两次使用相同的索引。 'name'可以是一次且仅一次的索引,因此你''希望'输出是不可能的。
此外,这个陈述很有问题
foreach($idList as $id)
{
$arr[] = array_merge(array(), array('name' => $id));
}
使用$ arr [] = $ x就像推动一样。它在数组的后面添加了一个新元素,用数字索引。
您不必使用array_merge。 array_merge返回第一个参数合并的第二个参数。您只是想添加一个新元素。此外,您使用的是array_merge($arr, array('name' => $id));
???
尝试:
foreach($idList as $id)
{
$arr[] = array('name' => $id);
}
你会得到:
Array
(
[0] = Array
(
[name] => first
)
[1] = Array
(
[name] => second
}
....
等等。我不确定这是不是你想要的,但你首先提出的建议是不可能的。