所以我有一个我一直在使用的PDO的PHP脚本,不是很大但是给我带来麻烦的是:
while ($row = $try->fetchAll(PDO::FETCH_ASSOC)) {
var_dump($row);
以预期的方式输出数据:`
array(5) {
[0]=>
array(2) {
["DataID"]=>
string(1) "1"
["Description"]=>
string(3) "!!!"
}
[1]=>
array(2) {
["DataID"]=>
string(1) "2"
["Description"]=>
string(18) "This is document 2"
}
但是当我将最后一行更改为:
时echo implode(" - ", $row);
输出:
Array
Array
我可以知道为什么会这样,我将如何解决这个问题?谢谢!
答案 0 :(得分:1)
您同时获取所有行,因此您的while语句代码对所有行执行一次:
while ($row = $try->fetchAll(PDO::FETCH_ASSOC)) {
var_dump($row);
这就是为什么你的var_dump打印所有内容(但只打印一次!)。
在爆炸的同时,你只会爆炸一个阵列。
如果你逐行获取:
while ($row = $try->fetch(PDO::FETCH_ASSOC)) {
var_dump($row);
您将按照您拥有的行打印为数组,并且您的内爆将按预期成功
答案 1 :(得分:0)
将有一个array_column函数是PHP 5.5,你将能够做到这一点
$myHiddenField = implode(',', array_column($yourMainArray, 'code'));
For now you have to use your own loop
$values = array();
foreach ($yourMainArray as $address)
{
$values[] = $address['code'];
}
$myHiddenField = implode(',', $values);
请通过两个链接