Php 非法字符串偏移量';子字段';排列
首先,我对阵列还是个新手。为什么会出现错误Php 非法字符串偏移量';子字段';排列,php,arrays,woocommerce,Php,Arrays,Woocommerce,首先,我对阵列还是个新手。为什么会出现错误非法字符串偏移量“child\u field” 这是我的密码 $product_extras = $cart_item['product_extras']; foreach ( $product_extras as $product_extra ) { if ( $product_extra['child_field'] == 1 ) { echo "YES"; } } 这是数组 Array ( [pr
非法字符串偏移量“child\u field”
这是我的密码
$product_extras = $cart_item['product_extras'];
foreach ( $product_extras as $product_extra ) {
if ( $product_extra['child_field'] == 1 ) {
echo "YES";
}
}
这是数组
Array
(
[products] => Array
(
[pewc_parent_product] => 8928
[parent_field_id] => pewc_5d66c506a5bb6
[child_field] => 1
[pewc_group_8929_9028_child_field] => pewc_group_8929_9028
[products_quantities] => one-only
[allow_none] => 0
)
[product_id] => 8945
[title] => Section 200
[groups] => Array
(
)
)
[28-Aug-2019 21:49:47 UTC] PHP Warning: Illegal string offset 'child_field' in C:\laragon\www\xxxxx\wp-content\plugins\xxxxx\inc\class-woocommerce.php on line 129
您有一个嵌套数组。因此在
foreach
循环中,它首先查看[products]
元素(它是一个数组),是的,您有一个[child\u field]
元素。然后查看下一个元素,即[product\u id]
,您没有[child\u field]
子元素。这就是错误
要修复:
if ( isset($product_extra['child_field']) && $product_extra['child_field'] == 1 )
您应该移除foreach,并在必要时使用它
if(1 == $product_extra["products"]['child_field']){
echo "YES";
}
或者,您也可以这样做:
foreach($product\U extras['products']作为$product\U extra)