【问题标题】:Fatal error when using foreach on 3rd array在第三个数组上使用 foreach 时出现致命错误
【发布时间】:2022-01-11 02:10:49
【问题描述】:

尝试在第三个数组上使用 foreach 时出现错误

'{
  "prefix": "_country-",
  "countries": [
    {
      "code": "al",
      "name": "Albania",
      "cities": {
        "prefix": "_city-",
        "options": [
          {
            "code": "durres"
              },
          {
            "code": "tirana"
          }
        ]
      }
},
    {
      "code": "dz",
      "name": "Algeria",
      "cities": {
        "prefix": "_city-",
        "options": [
          {
            "code": "algiers"
          },
          {
            "code": "oran"
          }
        ]
      }
    }
  ]
}

我的目标是获取上面的这些数据,并期望它使用以下代码循环直到它的最后一个数据:

`foreach($countryarr1['countries'] as $countkey1 => $countname1){ ?> <br><br> <?php 
  foreach($countname1['cities'] as $cntrykey2 => $cntrys){
    foreach($cntrys['options'] as $optionskey1 => $optionsarr1){
      var_dump($optionsarr1);
    }
  }
}`

返回这个错误

'Fatal error: Uncaught TypeError: Cannot access offset of type string on string in 
C:\xampp\htdocs\homepage\countries.php:25 Stack trace: #0 {main} thrown in 
C:\xampp\htdocs\homepage\countries.php on line 25'

这是第 25 行

Error on line 25

我错过了什么吗?顺便说一句,我正在为网站制作代理仪表板。

这证明当我只有 2 个数组时它没有问题:

foreach for 2 arrays

output with no errors

现在,当我在第三个数组上添加另一个 foreach 等等时,就会出现错误。在这里。

foreach for 3rd array

还有错误error

【问题讨论】:

    标签: php arrays echo


    【解决方案1】:

    您只需像这样的 2 个循环就可以很好地做到这一点

    $countryarr1 = json_decode($str, true);
    #print_r($countryarr1);
    foreach($countryarr1['countries'] as $countkey1 => $countname1){ ?> <br><br> <?php 
        foreach($countname1['cities']['options'] as $optionskey1 => $optionsarr1){
            var_dump($optionsarr1);
        }
    }
    
    

    结果

    array(1) { 'code' => string(6) "durres" }
    array(1) { 'code' => string(6) "tirana" }
    array(1) { 'code' => string(7) "algiers" }
    array(1) {'code' => string(4) "oran" }
    

    【讨论】:

    • 非常感谢!像魅力一样工作,完全有道理。
    猜你喜欢
    • 2022-11-09
    • 1970-01-01
    • 1970-01-01
    • 2014-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    相关资源
    最近更新 更多