警告:非法字符串偏移量 PHP 7 foreach
Warning: Illegal string offset PHP 7 foreach
使用 php 卷曲。我正在获取一组数据。我想从中获取以下数据
if(is_array($jsonRes['prod']['ret']['ProdIt'])){
foreach($jsonRes['prod']['ret']['ProdIt'] as $obRes){
$arP["ARTI"] = $obRes['Article'];
$arP["ALT"] = $obRes['Name'];
$arP["BR"] = $obRes['Brand'];
我收到一个错误:
警告:第 48 行
中 /......php 中的非法字符串偏移量 'Article'
警告:第 49 行
中 /................php 中的非法字符串偏移量 'Name'
警告:第 50
行 /................php 中的非法字符串偏移量 'Brand'
这是一个数组
Array
(
[ret] => Array
(
[ProductsItemCount] => 1
[ProdIt] => Array
(
[Code] => 0789087
[Article] => 3011317
[Name] => Price cash
[Brand] => HATTAT
[Price] => 0
[Currency] => EUR
[Stock] => Array
(
[StockItem] => Array
错误并不总是发生。当一个数组看起来像这样时,它就没有错误
Array
(
[ret] => Array
(
[ProductsItemCount] => 2
[ProdIt] => Array
(
[0] => Array
(
[Code] => 908877677
[Article] => 8200892104
[Name] => Tovare
[Brand] => RENAULT
[Price] => 0
[Currency] => EUR
[Stock] => Array
您需要检查 ProdIt
是一维的还是二维的。在第一个示例中,它是单个关联数组,而不是关联数组的数组。
$prodit = $jsonRes['prod']['ret']['ProdIt'];
if (is_array($prodit)) {
if (isset($prodit['Article'])) { // 1-dimensional, turn into 2-dimensional
$prodit = array($prodit);
}
foreach ($prodit as $obRes) {
...
}
}
使用 php 卷曲。我正在获取一组数据。我想从中获取以下数据
if(is_array($jsonRes['prod']['ret']['ProdIt'])){
foreach($jsonRes['prod']['ret']['ProdIt'] as $obRes){
$arP["ARTI"] = $obRes['Article'];
$arP["ALT"] = $obRes['Name'];
$arP["BR"] = $obRes['Brand'];
我收到一个错误:
警告:第 48 行
中 /......php 中的非法字符串偏移量 'Article'警告:第 49 行
中 /................php 中的非法字符串偏移量 'Name'警告:第 50
行 /................php 中的非法字符串偏移量 'Brand'这是一个数组
Array
(
[ret] => Array
(
[ProductsItemCount] => 1
[ProdIt] => Array
(
[Code] => 0789087
[Article] => 3011317
[Name] => Price cash
[Brand] => HATTAT
[Price] => 0
[Currency] => EUR
[Stock] => Array
(
[StockItem] => Array
错误并不总是发生。当一个数组看起来像这样时,它就没有错误
Array
(
[ret] => Array
(
[ProductsItemCount] => 2
[ProdIt] => Array
(
[0] => Array
(
[Code] => 908877677
[Article] => 8200892104
[Name] => Tovare
[Brand] => RENAULT
[Price] => 0
[Currency] => EUR
[Stock] => Array
您需要检查 ProdIt
是一维的还是二维的。在第一个示例中,它是单个关联数组,而不是关联数组的数组。
$prodit = $jsonRes['prod']['ret']['ProdIt'];
if (is_array($prodit)) {
if (isset($prodit['Article'])) { // 1-dimensional, turn into 2-dimensional
$prodit = array($prodit);
}
foreach ($prodit as $obRes) {
...
}
}