首先,关于数组,我还是一个新手。为什么会出现错误Illegal string offset 'child_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
答案 0 :(得分:1)
您有一个嵌套数组。因此,在foreach
循环中,它首先查看[products]
元素(它是一个数组),是的,您有一个[child_field]
元素。然后,它查看下一个元素[product_id]
,而您没有[child_field]
子元素。因此就是错误。
要解决:
if ( isset($product_extra['child_field']) && $product_extra['child_field'] == 1 )
答案 1 :(得分:0)
您应该删除foreach,并在以下情况下使用
if(1 == $product_extra["products"]['child_field']){
echo "YES";
}