[英]Fatal error: Cannot use string offset as an array
Array
(
[0] => Array
(
[auth_id] => 1
[auth_section] => Client Data Base
[auth_parent_id] => 0
[auth_admin] => 1
[sub] => Array
(
[0] => Array
(
[auth_id] => 2
[auth_section] => Client Contact
[auth_parent_id] => 1
[auth_admin] => 1
)
)
)
[1] => Array
(
[auth_id] => 6
[auth_section] => All Back Grounds
[auth_parent_id] => 0
[auth_admin] => ,4
[sub] => Array
(
[0] => Array
(
[auth_id] => 7
[auth_section] => Edit Custom
[auth_parent_id] => 6
[auth_admin] => 1
)
)
)
[2] => Array
(
[auth_id] => 20
[auth_section] => Order Mail
[auth_parent_id] => 0
[auth_admin] => 1
[sub] =>
)
}
當我處理子內部數組時
for($in=0 ; $in < count($auth); $in++){
$autsub = $auth[$in]["sub"];
for($g=0 ; $g<count($autsub); $g++){
echo $autsub[$g]["auth_id"];
}
}
它顯示了這個錯誤
致命錯誤:不能將字符串偏移量用作數組.........
我怎么能避免這種情況:(
問題是數組( 2
)中的最后一個條目沒有sub
數組,但無論如何你都試圖訪問它。 在循環之前,您需要檢查條目是否存在以及它是否為數組。 這是一個使用foreach
的例子:
foreach ($array as $auth) {
if (!empty($auth['sub']) && is_array($auth['sub'])) {
foreach ($auth['sub'] as $sub) {
if (!empty($sub['auth_id'])) {
echo $sub['auth_id'];
}
}
}
}
您可以使用is_array()函數測試偏移類型。 如果您想要更好的答案,請發布處理代碼。 測試$ auth [$ in]和$ autsub [$ g]是否為數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.