基于查询:
$query = $db->query("SELECT id, email, status, enviados FROM
contactos LIMIT 0,500");
我在哪里收到电子邮件并将它们存储在一个数组中,我想将它们分开并用逗号打印,然后将它们放在一个变量中,结果是:
$ variable = a1, a2, a3;
我尝试解决内爆问题,但无法正常工作,我已经看到了其他问题,但是找不到解决方法
这是我的代码
$query = $db->query("SELECT id, email, status, enviados FROM
contactos LIMIT 0,500");
$count = $query->num_rows;
while($row = mysqli_fetch_array($query)){
$datos_seleccionados[] = array(
'emails' => $row['email']
);
}
for ($i = 0; $i <= $count; $i++) {
echo implode(",", $datos_seleccionados[$i]);
}
答案 0 :(得分:2)
您需要以这种方式完成
$datos_seleccionados = [];
while($row = mysqli_fetch_array($query))
{
$datos_seleccionados[] = $row['email'];
}
echo implode(",", $datos_seleccionados);
答案 1 :(得分:1)
您可以为此使用array_column:
示例代码:
$data = [
['title' => 'foo', 'val' => 1],
['title' => 'bar', 'val' => 5],
['title' => 'foobar', 'val' => 9]
];
echo implode(',', array_column($data, 'val'));
在这里,我们只按键对元素进行分组(在本例中为val
),然后对所返回的数组进行内爆处理
所以在您的情况下:
echo implode(',', array_column(mysqli_fetch_array($query), 'email'));
答案 2 :(得分:1)
它不起作用,因为您将数据存储在这里的多维数组中:
$datos_seleccionados[] = array(
'emails' => $row['email']
);
在echo implode(",", $datos_seleccionados[$i]);
内使用for
也是一个问题,这意味着,您用逗号将数组内插,您可以按照@Rakesh的建议进行操作:
解决方案(我正在使用此代码进行一些优化):
if($count > 0){ // if count exist
$datos_seleccionados = array(); // initiate
while($row = mysqli_fetch_array($query)){
$datos_seleccionados[] = $row['email'];
}
echo implode(",",$datos_seleccionados);
}
else{
echo "No result found";
}