簡體   English   中英

我可以從多維數組中提取特定數據

[英]I can I pull a specific data from multidimensional array

我試圖從多維數組中提取數據,但每次嘗試編寫正確的路徑時都會遇到此錯誤。 由於路徑正確,我不知道出了什么問題。

錯誤:

   Notice: Undefined index: shipper in C:\xampp\htdocs\xml\dood.php on line 31

    Notice: Undefined index: shipper in C:\xampp\htdocs\xml\dood.php on line 31

這是數組

Array
(
    [Shp] => Array
        (
            [test] => Array
                (
                    [shipper] => Array
                        (
                            [customer] => Array
                                (
                                    [address] => Array
                                        (
                                            [ad1] => new road
                                            [ad2] => newyork
                                            [company] => none
                                            [city] => JO
                                        )

                                    [newlang] => 
                                )

                        )

                    [reciver] => Array
                        (
                            [customer] => Array
                                (
                                    [address] => Array
                                        (
                                            [ad1] => new road
                                            [ad2] => newyork
                                            [company] => none
                                            [city] => JO
                                        )

                                    [newlang] => 
                                )

                        )

                    [test] => Array
                        (
                            [shipper] => Array
                                (
                                    [customer] => Array
                                        (
                                            [address] => Array
                                                (
                                                    [ad1] => new road
                                                    [ad2] => newyork
                                                    [company] => none
                                                    [city] => JO
                                                )

                                            [newlang] => 
                                        )

                                )

                            [reciver] => Array
                                (
                                    [customer] => Array
                                        (
                                            [address] => Array
                                                (
                                                    [ad1] => new road
                                                    [ad2] => newyork
                                                    [AddrLn3] => newyork
                                                    [company] => none
                                                    [city] => JO
                                                )

                                            [newlang] => 
                                        )

                                )

                        )

                )

        )

)

PHP代碼

$arr = $array; //Set this to your converted xml
$comps = $arr['Shp']['test'];

foreach($comps as $comp){
     echo $comp['shipper']['customer']['address']['ad1'];
}

如何解決此錯誤?

請幫我盡一切可能

您在代碼中有一個額外的密鑰。 去掉它

$arr = $array; //Set this to your converted xml
$comps = $arr['Shp']['test'];

foreach($comps as $comp){
     echo $comp['customer']['address']['ad1'];
}

如果您要添加特定於托運人的操作

foreach($comps as $key => $comp){ 
    if ($key == 'shipper') { 
        echo $comp['customer']['address']['ad1']; 
    } 
}

在您的陣列中,有兩組托運人和收貨人。 一個是外部,另一個是內部。 見下文

Array
(
    [Shp] => Array
        (
            [test] => Array
                (
                    #####Top shipper array
                    [shipper] => Array
                        (
                            [customer] => Array
                                (
                                    [address] => Array(.....)
                                    [newlang] => 
                                )
                        )
                    #####Top reciver array
                    [reciver] => Array
                        (
                            [customer] => Array
                                (
                                    [address] => Array(.....)
                                    [newlang] => 
                                )
                        )
                    #####Sub array - test
                    [test] => Array
                        (
                        #####Sub shipper array
                            [shipper] => Array
                                (
                                    [customer] => Array
                                        (
                                            [address] => Array(.....)
                                            [newlang] => 
                                        )
                                )
                        #####Sub reciver array
                            [reciver] => Array
                                (
                                    [customer] => Array
                                        (
                                            [address] => Array(.....)
                                            [newlang] => 
                                        )
                                )
                        )
                )
        )
)

如果要遍歷內部數組,可以使用上面的代碼。

如果您想遍歷內部數組,請使用以下代碼

$arr = $array; //Set this to your converted xml
$comps = $arr['Shp']['test']['test];
foreach($comps as $key => $comp){ 
    if ($key == 'shipper') { 
        echo $comp['customer']['address']['ad1']; 
    } 
}

或者,如果您想遍歷所有內容並僅在可用時打印數據

$arr = $array; //Set this to your converted xml
$comps = $arr['Shp']['test']['test];
foreach($comps as $key => $comp){ 
    if (isset($comp['shipper'])) { 
        echo $comp['shipper']['customer']['address']['ad1'];
    } 
}

要解決該錯誤,請確定$ comp變量/數組中的內容。 發生錯誤是因為您所要求的不存在。

  1. 注釋掉您的第31行

  2. 然后回顯var_dump命令。 這將向您顯示陣列中實際存在的內容。 這將以可讀格式顯示您的陣列內容。

    foreach($ comps為$ comp){//回顯$ comp ['shipper'] ['customer'] ['address'] ['ad1']; 回聲var_dump($ comp); }

php參考手冊中查找var_dump命令

  1. 一旦看到陣列的內容,就可以輕松確定如何訪問該內容。

暫無
暫無

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

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