2014-10-23 6 views
1

У меня есть массив, который правильно показывает print_r, но когда я конвертирую его в строку, он отображает только array,array,array,array вместо фактических значений массива.Array to string, показывая как -> Array, Array, Array, Array

if (!$result) { 
     printf("Query failed: %s\n", $mysqli->error); 
     exit; 
    }  


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

    } 

    print_r($recipients); 

    $ids = implode(',', $recipients); 
    echo $ids; 

Выход:

Array ([0] => Array ([0] => 1) [1] => Array ([0] => 3) [2] => Array ([0] => 100) [3] => Массив ([0] => 118) [4] => Массив ([0] => 142) [5] => Массив ([0] = > 276) [6] => Array ([0] => 308)) массив, массив, массив, массив, массив, массив, массив

+0

Если вы хотите увидеть короткое видео о какой-то забаве с массивами, я очень рекомендую https://www.destroyallsoftware.com/talks/wat – Ruskin

ответ

2

Вы добавляете массив в массив получателя не только значение ID

Используйте это вместо

while($row = $result->fetch_row()) { 
    $recipients[]=$row[0]; //gets the id assuming that is the first element in the row 
} 
+0

спасибо! Принимая в течение 3 минут, вы также можете открыть чат со мной случайно? –

2

mysqli_result::fetch_row - mysqli_fetch_row - Получить результирующий ряд как перечислены массив. Для получения данных вам нужно получить доступ к индексам массива.

Чтобы получить доступ к индексам массива в PHP, вы должны сформировать операцию.

$array[X]

В этом случае X может быть целым числом или строкой, но в этом случае mixed mysqli_result::fetch_row возвращает массив в порядке, так что вы сможете получить доступ его, как и любой другой массив (например, массив [0] , ...)

+0

Извините, им очень новичок в mysqli, поэтому я не уверен, что вы имеете в виду. –

+0

Привет, это сработало! –

0
$input = array(0 => array(0 => 1), 1 => array(0 => 3), 2 => array(0 => 100), 3 => array(0 => 118), 4 => array(0 => 142), 5 => array(0 => 276), 6 => array(0 => 308)); 

Чтобы применить implode() функцию на многомерном массиве, Вы можете сделать использование array_map()

echo implode(', ', array_map(function ($entry) { 
     return $entry[0]; 
    }, $input)); 

От PHP v5.5.0, array_column:

echo implode(', ', array_column($input, 0));