带逗号的单独 PHP 数组的数据

data of separate PHP array with comma

基于查询:

  $query = $db->query("SELECT id, email, status, enviados FROM 
  contactos LIMIT 0,500");

在我收到电子邮件并将它们存储在数组中的地方我想将它们分开并用逗号打印它们,然后将它们放入一个变量中,结果类似于:

$ variable = a1, a2, a3;

我尝试使用 implode 但它不起作用,我已经看到其他问题但我找不到解决方案

这是我的代码

$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]);
}

你需要这样做

$datos_seleccionados = [];
while($row = mysqli_fetch_array($query))
{
  $datos_seleccionados[] = $row['email'];
}
echo implode(",", $datos_seleccionados);

您可以为此使用 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'));

它不起作用,因为您将数据存储到此处的多维数组中:

$datos_seleccionados[] = array(
        'emails' => $row['email']
    );

for 中使用 echo implode(",", $datos_seleccionados[$i]); 看起来也是一个问题,这意味着,您正在用逗号分解数组,您可以按照@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";
}