亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP foreach 只返回嵌套數組的第一個 [0]

PHP foreach 只返回嵌套數組的第一個 [0]

PHP
胡說叔叔 2022-01-02 15:49:22
我有一個像下面這樣的對象,數組相互嵌套。我使用 foreach 循環來遍歷數組的第一層和第二層。array (   'totalHits' => 500,   'total'     => 845,   'hits' =>   array (       0 => array (              'url' => 'www.someurl.com',              'id'  => '11',       ),       1 => array (              'url' => 'www.differenturl.com',              'id'  => '22',       ), );我試圖從嵌套在“hits”中的所有數組中獲取鍵和值,但我只得到第一個,hits[0]。我錯過了什么?<?php     if($_SERVER['REQUEST_METHOD']=='POST'){                $keywords       = $_POST['pixa_keyword'];                   $api_key        = "my_hidden_api_key";        $url            = "https://pixabay.com/api/?key=".$api_key."&safesearch=true&q=".$keywords;        $json           = file_get_contents($url);                    }        ?><body>    <form action="#" method="post">    <input name="pixa_keyword" id="cms_pixaSearchKeywords2" type="text" value="">           <input name="submit_pixa_search" id="cms_pixaSearchBtn2" type="submit" value="search"></form><div id="cms_displayPixaResults"></div>    <?php         $pixa_feedback=[];            if($_SERVER['REQUEST_METHOD']=="POST"){        $pixa_feedback = json_decode($json);    }        foreach($pixa_feedback as $inner){        // check type        if(is_array($inner)){            // iterate through nested array            $i = 0;            foreach ($inner[$i] as $key => $value){                      echo $key . ": " . $value . " <br>";                $i++;            }        }    }        ?>
查看完整描述

3 回答

?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

您的計數器變量沒有做任何事情,因為您foreach只會迭代$inner[0]然后停止。您需要添加第三級迭代:


foreach($pixa_feedback as $inner){

    // check type

    if(is_array($inner)){

        // iterate through nested array

        foreach ($inner as $values){

            foreach ($values as $key => $value) {

                echo $key . ": " . $value . " <br>";

            }

        }

    }

}

輸出:


url: www.someurl.com <br>id: 11 <br>

url: www.differenturl.com <br>id: 22 <br>


查看完整回答
反對 回復 2022-01-02
?
ibeautiful

TA貢獻1993條經驗 獲得超6個贊

你沒有正確循環你的數組試試這個:


$temp = array (

   'totalHits' => 500,

   'total'     => 845,

   'hits' =>

   array (

       0 => array (

              'url' => 'www.someurl.com',

              'id'  => '11',

       ),

       1 => array (

              'url' => 'www.differenturl.com',

              'id'  => '22',

       ),

 ));


foreach($temp["hits"] as $inner_arr){

     echo $inner_arr["url"];

     echo $inner_arr["id"];

}


查看完整回答
反對 回復 2022-01-02
?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

在 a 中,foreach您不需要計數器變量。循環體將針對第一個“參數”中的每個項目運行。因此內循環(在外循環的第 3 次迭代期間)迭代array ('url' => 'www.someurl.com', 'id'  => '11')并在之后完成。


查看完整回答
反對 回復 2022-01-02
  • 3 回答
  • 0 關注
  • 157 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號