Получение значений из массива массивов - PullRequest
0 голосов
/ 21 октября 2018

У меня есть массив массивов.Я пытаюсь пройтись по каждому из них и получить значения.Вот код, который я использую для ввода в массив,

        $body = json_decode($res->getBody(),true); //gets the whole json and make an array
        $events = $body['results']; // to go one level down and get 'results'
        //var_dump($events);

        foreach ($events as $obj) {
            var_dump($obj); // to go into the array of arrays and print each inside array.
           break;
        }

Массив, который мне нужно зациклить:

array(1) {
  ["events"]=>
  array(43) {
    [0]=>
    array(22) {
      ["item1"]=>
      string(71) "lorem ipsum bla bla"
      ["lorem ipsum bla bla"]=>
      string(21) "lorem ipsum bla bla"
      ["lorem ipsum bla bla"]=>
      string(17) "lorem ipsum bla bla"
      ["lorem ipsum bla bla"]=>
      string(10) "lorem ipsum bla bla"
 }
    [1]=>
    array(22) {
      ["item1"]=>
      string(71) "lorem ipsum bla bla"
      ["lorem ipsum bla bla"]=>
      string(21) "lorem ipsum bla bla"
      ["lorem ipsum bla bla"]=>
      string(17) "lorem ipsum bla bla"
      ["lorem ipsum bla bla"]=>
      string(10) "lorem ipsum bla bla"
}

Что показывает массив, когда я зацикливаюсь над одним элементом:

Показывает полный массив

Ответы [ 3 ]

0 голосов
/ 21 октября 2018

Я думаю, что вы должны попытаться таким же образом с foreach() повторить индекс 0th $events,

<code>foreach($events[0]['events'] as $obj) {
    print '<pre>';
    print_r($obj);
    print '
';}
0 голосов
/ 21 октября 2018

Вот функция, которую я сделал для того, чтобы визуализировать ваш массив наиболее понятным способом:

function DebugArray($arr){
    $s='';
    if($arr==null){
        $s .= 'NULL';
        return $s;
    }
    $s .=  '<table border="1">';
    foreach((array)$arr as $k=>$v){
        $s .=  '<tr><td>'.$k.'</td><td>';
        if( is_array($v) ){
            $s .= DebugArray($v);
        }else{
            $s .=  $v;
        }
        $s .=  '</td></tr>';
    }
    $s .=  '</table>';
    return $s;
}

Довольно полезно быстро увидеть все мультиразмеры. Надеюсь, это поможет

0 голосов
/ 21 октября 2018

Если вы хотите зациклить $events['events'], вы должны установить это в качестве первого параметра foreach

foreach($events['events'] as $obj) {
    var_dump($obj);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...