我試圖打印嵌套數組的內容,但它只是返回「數組」作爲字符串,但不會迭代foreach循環。這些數組來自mongodb find()。該數據集看起來像這樣:嵌套數組的打印內容
User
Post_Title
Post_Content[content1,content2,content3]
我想在content1,2,3。
我當前的代碼看起來是這樣的:
$results = $collection->find($query);
foreach ($results as $doc)
{
echo $doc['title']; //this works
$content[] = $doc['content'];
print_r($content); //this prints "Array ([0] => Array)"
foreach ($content as $item)
{
echo $item;
}
}
所有這些代碼的作用是打印標題,接着陣列([0] =>數組),其次是數組。
我覺得很愚蠢,不知道這些看起來很基本的東西。堆棧溢出的大多數帖子都是指多維關聯數組 - 在這種情況下,頂級數組是關聯的,但內容數組是索引的。
我也曾嘗試
foreach ($doc['content'] as $item)
但是,讓
Warning: Invalid argument supplied for foreach()
我甚至嘗試迭代返回數組再次使用嵌套的foreach,如下所示:
foreach ($results as $doc)
{
echo $doc['title']; //this works
$content[] = $doc['content'];
print_r($content); //this prints "Array ([0] => Array)"
foreach ($content as $item)
{
foreach ($item as $next_item)
{
echo $next_item;
}
echo $item;
}
}
第二個foreach失敗,無效的論點.. 任何想法會不勝感激。
編輯:也許這與我如何將數據插入數據庫有關。該代碼看起來像這樣
$title = $_POST['list_title'];
$content[] = $_POST['list_content1'];
$content[] = $_POST['list_content2'];
$content[] = $_POST['list_content3'];
$object = new Creation();
$object->owner = "$username";
$object->title = "$title";
$object->content = "$content";
$object->insert();
這不是將數組作爲屬性添加到類中的正確方法嗎?
你有沒有試過$ content [0]而不是$ content? – 2013-02-21 02:36:08
我實際上只是試過'print_r($ doc ['content'] [0]);'並且它返回了字母A.我認爲它可能會返回正確的數據,但Mongo已經將字符串數據保存爲字符串「數組」而不是數組的內容。檢查mongo控制檯似乎證實了這一點。 – sricks 2013-02-21 02:46:30