如何访问嵌套数组值

时间:2018-03-08 04:04:11

标签: php arrays laravel nest

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

$inputs['test']

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

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

我在foreach循环中尝试了这个但是它不起作用

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

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

6 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:2)

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

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

}

答案 2 :(得分:1)

尝试

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

答案 3 :(得分:1)

首先你有什么是关键,什么是数组的价值
它们是回声数组的多种方式,这是一种方式

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

答案 4 :(得分:1)

$myEcho = function($x){
    if(is_array($x)){foreach($x as $one){$myEcho($one);}
    }else{ echo $x; }
  };
array_map($myEcho, $inputs['test']['order']);

答案 5 :(得分: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