簡體   English   中英

打印嵌套數組的內容

[英]Printing contents of a nested array

我正在嘗試打印嵌套數組的內容,但它只是以字符串形式返回“ Array”,但不會使用foreach循環進行迭代。 數組來自mongodb find()。 數據集如下所示:

User
Post_Title
Post_Content[content1,content2,content3]

我試圖獲得內容1,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;
        }
    }   

這些代碼所做的全部工作是打印Title,然后打印Array([0] => Array),然后打印Array。

我很愚蠢,沒有弄清楚看起來如此基本的東西。 堆棧溢出中的大多數帖子都引用多維關聯數組-在這種情況下,頂級數組是關聯數組,但內容數組已建立索引。

我也嘗試過

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();

這不是將數組作為屬性添加到類的正確方法嗎?

問題是一些數組內容是一個數組,而其他部分是字符串。 您應該使用is_array()測試子內容$doc是否為數組。 如果是的話,就像在其他數組中那樣循環遍歷$doc ,如果不是,則可以回顯內容(如果不確定可以做什么,則可能需要先測試內容類型,然后再執行此操作)是)

問題出在代碼中,您正在保存數據。 您應該替換以下行

$ object-> content =“ $ content”;

$ object-> content = $ content;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM