Как получить доступ к значениям вложенного массива


Как получить доступ к значениям вложенного массива

08.03.2018 07:04:10 Просмотров 58 Источник

У меня есть следующий массив, который мне нужно использовать в шаблоне представления электронной почты laravel

$inputs['test']

Что выглядит примерно так, когда я dd($inputs['test']);

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

Я пробовал это в своем цикле foreach, но это не работает

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

Какой синтаксис мне понадобится для Эхо-обработки каждого значения из вложенного массива Order?

У вопроса есть решение - Посмотреть?

Ответы - Как получить доступ к значениям вложенного массива / How to access nested array values

Hamza Mohamed

08.03.2018 07:06:17

Попробуй

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

В принципе, php читает вложенные массивы как массивы в массивах .. так что независимо от того, сколько массивов вложено, вы всегда можете использовать [][][][][]

руководство по PHP

Пример #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;} 
Является ответом!
B. Desai

08.03.2018 07:06:57

Вы должны использовать массив а не объектный цикл:

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

}
Marinus

08.03.2018 07:07:16

Вы используете квадратные скобки [] для доступа к значениям массива, стрелки -> для доступа к свойствам объектов

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

08.03.2018 07:15:31

Во первых у вас есть что такое ключ и что такое значение массивов
Это несколько способов Эхо массивов это один из способов

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

08.03.2018 07:19:00

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

31.10.2020 07:19:17

Просто используйте вспомогательный метод для 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

Помочь в развитии проекта:
Закрыть X