数组到字符串显示为 - >数组,数组,数组,数组

时间:2014-10-23 06:30:40

标签: php arrays

我有一个使用print_r正确显示的数组但是当我将其转换为字符串时,它只显示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;

输出结果为:

  

数组([0] =>数组([0] => 1)[1] =>数组([0] => 3)[2] =>数组([0] => ; 100)[3] =>数组([0] => 118)[4] =>数组([0] => 142)[5] =>数组([0] => 276 )[6] =>数组([0] => 308))数组,数组,数组,数组,数组,数组,数组

3 个答案:

答案 0 :(得分:2)

mysqli_result::fetch_row - mysqli_fetch_row - 将结果行作为枚举数组。您需要访问数组的索引才能获取数据。

要在PHP中访问数组的索引,您将形成一个操作。

$array[X]

在这种情况下,X可以是整数或字符串,但在这种情况下,mixed mysqli_result::fetch_row按顺序返回一个数组,因此您可以像任何其他数组一样访问它(例如数组[ 0],...)

答案 1 :(得分:2)

您正在向收件人数组添加一个数组,而不仅仅是id值

改为使用

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

答案 2 :(得分: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));