[英]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變量/數組中的內容。 發生錯誤是因為您所要求的不存在。
注釋掉您的第31行
然后回顯var_dump命令。 這將向您顯示陣列中實際存在的內容。 這將以可讀格式顯示您的陣列內容。
foreach($ comps為$ comp){//回顯$ comp ['shipper'] ['customer'] ['address'] ['ad1']; 回聲var_dump($ comp); }
在php參考手冊中查找var_dump命令
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.