2015-06-10 3 views
0

Я пытаюсь получить список или электронную почту в «простом» массиве из базы данных MySQL, поэтому я могу использовать их в PHPmailer для отправки по электронной почте. Однако я получаю многомерный массив, а затем массив:PHP для возврата «простого» массива с использованием mysqlli

$query = "SELECT DISTINCT `EmailAddress` FROM `Emails` WHERE `JobID` = 1"; 
$result = $conn->query($query);  
if (!$result) { 
    printf("Query failed: %s\n", $mysqli->error); 
    exit; 
}  
while($row = $result->fetch_row()) { 
    $rows[]=$row; 
} 
$result->close(); 
$conn->close(); 
var_dump($rows); // This will return array(2) { [0]=> array(1) { [0]=> string(24) "[email protected]" } [1]=> array(1) { [0]=> string(17) "[email protected]" } } 
//This is how array should be 
$MyV = array("[email protected]","[email protected]"); 
var_dump($MyV); //this is an array I need to have: array(2) { [0]=> string(11) "[email protected]" [1]=> string(11) "[email protected]" } 

Большое спасибо!

ответ

4

сделать fetch_assoc

while($row = $result->fetch_assoc()) { 
    $rows[]=$row['EmailAddress']; 
} 
+0

Большое спасибо! Прекрасно работает – Petrik

1

В этот момент вашего цикла у вас есть доступ к простому массиву, о котором вы говорите.

while($row = $result->fetch_row()) { 
    $rows[]=$row; 
} 

Так что, если вы хотите сделать что-нибудь с этим массивом присвоить некоторой переменной или вызвать функцию с массивом, что-то вроде этого:

while($row = $result->fetch_row()) { 
    doSomethingFun($row); 
} 
1

Ответы выше верны, но вот пример с минимальными модификациями кода для вашего текущего источника.

while($row = $result->fetch_row()) { 
    $rows[]=$row[0]; 
} 

Теперь $rows будет один одномерный массив заполняется адресами электронной почты.

Смежные вопросы