对于我收到此消息的原因感到困惑
警告:implode():传递的参数无效
这是我的剧本
$array
我知道echo '<pre>';
print_r($array);
echo '</pre>';
是一个正确的索引数组..如果我在for / foreach循环之前或之后执行此操作:
Array
(
[0] => Array 1 Node 1
[1] => Array 1 Node 2
[2] => Array 1 Node 3
[3] => Array 1 Node 4
[4] => Array 1 Node 5
)
Array
(
[0] => Array 2 Node 1
[1] => Array 2 Node 2
[2] => Array 2 Node 3
[3] => Array 2 Node 4
[4] => Array 2 Node 5
)
Array
(
[0] => Array 3 Node 1
[1] => Array 3 Node 2
[2] => Array 3 Node 3
[3] => Array 3 Node 4
[4] => Array 3 Node 5
)
etc. etc. etc.
输出是我的所有数组
;
我想要摆脱所有这些的输出,如果你不能通过循环判断,是一个类似csv的文件,带有{{1}}分隔符。
这个循环在循环之外工作正常,但是我遇到的问题是它没有从每个循环中检索所有结果 - 所以在循环中这样做我正在尝试我认为是理想的。
任何人都知道我做错了什么/为什么这不适用于while循环?
答案 0 :(得分:1)
看起来$array
是一个字符串数组。在这种情况下,您不应该需要内部for
或foreach
循环。如果$array
的每个实例都是其中之一:
Array
(
[0] => Array 1 Node 1
[1] => Array 1 Node 2
[2] => Array 1 Node 3
[3] => Array 1 Node 4
[4] => Array 1 Node 5
)
然后你应该能够直接破坏它。
$out = "";
while($row = $results->fetch_array()) {
// do stuff here to create an indexed array
$out .= implode(";", $array) . "<br>";
}
顺便说一下,// do stuff here to create an indexed array
可能没有必要。我不确定它究竟是做什么的,但是你可以在你的fetch方法中指定它应该获取一个数字索引的数组。
while($row = $results->fetch_array(MYSQLI_NUM)) { ...
(或者只使用fetch_row
方法。)