我有一个使用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))数组,数组,数组,数组,数组,数组,数组
答案 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));