我有一个MySQL结果集,每行有2个值。
每次循环这些结果时,我都想将它们添加到一个数组中。
我希望一个值是键,另一个是数组值。
我试过了,但是好像不起作用:
$dataarray[] = $row['id'] => $row['data'];
如果我有:
$resultSet = [
['id' => 1, 'data' => 'one'],
['id' => 2, 'data' => 'two'],
['id' => 3, 'data' => 'three']
];
我想要生成:
[
1 => 'one',
2 => 'two',
3 => 'three'
]
3条答案
按热度按时间6rvt4ljy1#
为什么不直接用
?
elcex8rz2#
mbjcgjjk3#
对于此任务,使用
array_column()
而不是foreach()
会更优雅/更有表现力/更现代/更简洁。第一个参数是行的输入数组。
第二个参数是要成为输出数组中值的列。
第三个参数是要成为输出数组中键的列。
代码:(Demo)
输出:
在集合上调用的Laravel等效方法是
pluck()
,如下所示:如果您希望分配新的第一级键,但保留行不变,则可以将
null
作为本机函数调用的第二个参数。代码:(Demo)
输出:
一种实现较少、没有功能的技术是在a body-less
foreach()
loop中使用数组重构。(Demo)这与前面的回答是相同的:
输出: