簡體   English   中英

逗號分隔的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;

我嘗試進行內爆,但無法正常工作,我已經看到了其他問題,但是找不到解決方案

這是我的代碼

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

使用echo implode(",", $datos_seleccionados[$i]); for look里面也是一個問題,這意味着,您用逗號將數組內插,您可以按照@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";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM