2015-06-19 3 views
0

Я не могу решить эту кажущуюся простую проблему. У меня есть следующий простой код и все, что я хочу, чтобы повторить результат $ ATL5_Alert_query и разделены запятой (,):Implode array в php mysql_fetch_array

$ATL5_Alert_query = mysql_query("SELECT `Mobile` FROM `dbo_tech_name` WHERE `AlertLevel`= 1"); 

$dataset = array(); 
while ($data = mysql_fetch_array($ATL5_Alert_query)) 
{ 
    $dataset[] = $data; 
} 
echo implode (",", $dataset); 

Однако, я получаю «Примечание: Массив для преобразования строки» .. .

+0

Можете ли вы попытаться проверить переменные и какие типы с помощью 'var_dump()'? Я не думаю, что это дубликат, но он связан с http://stackoverflow.com/questions/20017409/how-to-solve-error-notice-array-to-string-conversion-in и http: // stackoverflow.com/questions/6817148/convert-array-to-a-string-using-other-methods-that-json – Risadinha

ответ

1

В вашем коде $data также есть массив, поэтому $dataset становится массивом массивов, который вы не можете конкатенатировать. Вы должны получить искомую величину на это:

while ($data = mysql_fetch_array($ATL5_Alert_query)) 
{ 
    $dataset[] = $data['Mobile']; 
} 

или:

while ($data = mysql_fetch_array($ATL5_Alert_query)) 
{ 
    $dataset[] = $data[0]; 
} 

или:

while ($data = mysql_fetch_assoc($ATL5_Alert_query)) 
{ 
    $dataset[] = $data['Mobile']; 
} 

Однако, если вы не можете изменить это, и уже есть $dataset массив, вы можете взорвать его так:

echo implode(',', array_map(function($a){ 
    return $a['Mobile']; 
},$dataset));