如何访问嵌套数组值

How to access nested array values

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

$inputs['test']

当我 dd($inputs['test']);

时看起来像这样
Array:1[
    "order" => array:2[
        0 => 523
        1 => 522
     ]
 ]

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

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

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

尝试

$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;} 

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

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

}

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

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

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

foreach($inputs['test']['order'] as $key =>  $test){
        echo 'Key ->'.$key.'<br/>';    
        echo 'Value ->'. $test. '<br/>';
    }
$myEcho = function($x){
    if(is_array($x)){foreach($x as $one){$myEcho($one);}
    }else{ echo $x; }
  };
array_map($myEcho, $inputs['test']['order']);

只需使用 Arr facade 的辅助方法即可避免所有这些并发症。

例如,如果您有

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

你可以做到这一点

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

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

所以,如果数组必须像这样

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

你做到了

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

它会 return 为 null 而不是任何错误,即使该项目不存在。 如果你想这样,你也可以设置一个默认值

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

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

data_get($mainArrayName, '.nestedArrayName..NestedArrayKeyName');

试一试..希望这个工作 这里不需要 foreach