【问题标题】:How to access nested array values如何访问嵌套数组值
【发布时间】:2018-08-16 08:10:50
【问题描述】:

我需要在 laravel 电子邮件视图模板中使用以下数组

$inputs['test']

当我dd($inputs['test']);时看起来像这样

Array:1[
    "order" => array:2[
        0 => 523
        1 => 522
     ]
 ]

我已经在我的 foreach 循环中尝试过,但它不起作用

foreach($inputs['test']->order as $test){
        echo $test;}

我需要什么语法来回显顺序嵌套数组中的每个值?

【问题讨论】:

    标签: php arrays laravel nest


    【解决方案1】:

    只需对Arr facade 使用辅助方法即可避免所有这些复杂情况。

    例如,如果你有类似的东西

    $array = ['products' => ['desk' => ['price' => 100]]];
    

    你可以这样做

    return Arr::get($array, 'products.desk.price');
    

    它会返回100。最好的部分是如果关键价格不存在,它不会抛出错误。

    所以,如果数组必须是这样的

    $array = ['products' => ['desk' => []];
    

    你做到了

    return Arr::get($array, 'products.desk.price');
    

    即使该项目不存在,它也会返回 null 而不是任何错误。 如果你愿意,你也可以设置一个默认值

    return Arr::get($array, 'products.desk.price', 2);
    

    如果价格不存在,这将返回 2。 https://laravel.com/docs/8.x/helpers#method-array-get

    【讨论】:

      【解决方案2】:
      $myEcho = function($x){
          if(is_array($x)){foreach($x as $one){$myEcho($one);}
          }else{ echo $x; }
        };
      array_map($myEcho, $inputs['test']['order']);
      

      【讨论】:

        【解决方案3】:

        首先你知道什么是数组的键和值
        它们是回显数组的多种方式,这是一种方式

        foreach($inputs['test']['order'] as $key =>  $test){
                echo 'Key ->'.$key.'<br/>';    
                echo 'Value ->'. $test. '<br/>';
            }
        

        【讨论】:

          【解决方案4】:

          试试

          $inputs['test']['order'][0]

          基本上,php 将嵌套数组读取为数组中的数组.. 所以无论嵌套多少个数组,您始终可以使用[][][][][]

          php manual

          示例#6 访问数组元素

          <?php
          $array = array(
              "foo" => "bar",
              42    => 24,
              "multi" => array(
                   "dimensional" => array(
                       "array" => "foo"
                   )
              )
          );
          
          var_dump($array["foo"]);
          var_dump($array[42]);
          var_dump($array["multi"]["dimensional"]["array"]);
          ?>
          

          你可以在循环中使用它

          foreach($inputs['test']['order'] as $test){
              echo $test;} 
          

          【讨论】:

            【解决方案5】:

            您使用方括号 [] 访问数组值,箭头 -> 访问对象的属性

            foreach($inputs['test']['order'] as $test){
                    echo $test;
            }
            

            【讨论】:

              【解决方案6】:

              你必须使用数组而不是对象循环:

              foreach($inputs['test']['order'] as $test){           
                      echo $test;
              
              }
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2022-05-08
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2019-10-31
                • 1970-01-01
                • 2019-03-27
                相关资源
                最近更新 更多