微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为 foreach() 和未定义偏移错误提供的参数无效

如何解决为 foreach() 和未定义偏移错误提供的参数无效

我有一个这样的数组:

array (size=2)
  'status' => string 'ok' (length=2)
  'data' => 
    array (size=5)
      'sort_data' => 
        array (size=2)
          'sort_column' => string 'order_item_id' (length=13)
          'sort_order' => string 'asc' (length=3)

现在我编码这个以获得 sort_column 和它的价值以及 sort_order 和它的价值:

$status = $response['status'];

if($status == 'ok'){
    $nums = count($response['data']['sort_data']); //retrieves 2
    for($i=0; $i<=$nums; $i++){
        foreach($response['data']['sort_data'][$i] as $key=>$value){
            echo $key."=".$value;
        }
    }
}

但我收到这些错误

注意:未定义偏移量:第 6 行为 0

警告:为第 6 行的 foreach() 提供的参数无效

第 6 行:

foreach($response['data']['sort_data'][$i] as $key=>$value){

那么这里出了什么问题?

如何正确获取sort_data 中的 foreach 内容

更新 #1:

Array
(
    [status] => ok
    [data] => Array
        (
            [sort_data] => Array
                (
                    [sort_column] => order_item_id
                    [sort_order] => asc
                )

解决方法

我认为不需要 for 循环

  if($status == 'ok'){
       
      $sort_column=$response['data']['sort_data']['sort_column'];
      $sort_order=$response['data']['sort_data']['sort_order'];
    }
,

因为键不等于 0,所以这个数组的键是字符串,所以你需要将数组更改为键 (0.1.2) 或更改为 foreach 使用的键 => 像这样的值

foreach($response 作为 $responseValue){

  }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。