2015-09-10 4 views
0

Возвращение к базовому PHP недавно и наличие камней преткновения, с которым я не могу пройти мимо Ответ JSON. Я включил ответ в массив, но массив является многомерным (я думаю!) И массивом. Я хочу каждый раз извлекать значения из значений «Значение ключа», поэтому не уверен, как это изолировать.Зацикливание через многомерный массив при изменении ключа каждый раз PHP

Массив ниже и значения, которые я ищу для извлечения, - это ключевое слово (которое постоянно меняет «garmin gps systems», «satmap gps systems» и т. Д.), Позицию Google и URL-адрес, связанные с этим.

 

    Array 
    (
     [api] => cognitiveSEO API 
     [data] => Array 
      (
       [status] => success 
       [data] => Array 
        (
         [2015-07-16] => Array 
          (
           [garmin gps systems] => Array 
            (
             [locale] => en-uk 
             [google] => Array 
              (
               [position] => 
               [url] => 
              ) 

             [bing] => Array 
              (
               [position] => 8 
               [url] => http://www.aboveandbeyond.co.uk/gps-and-navigation/gps-systems/garmin 
              ) 

             [yahoo] => Array 
              (
               [position] => 8 
               [url] => http://www.aboveandbeyond.co.uk/gps-and-navigation/gps-systems/garmin 
              ) 

            ) 

           [satmap gps systems] => Array 
            (
             [locale] => en-uk 
             [google] => Array 
              (
               [position] => 25 
               [url] => http://www.aboveandbeyond.co.uk/gps-and-navigation/satmap 
              ) 

             [bing] => Array 
              (
               [position] => 4 
               [url] => http://www.aboveandbeyond.co.uk/gps-and-navigation/gps-systems/satmap 
              ) 

             [yahoo] => Array 
              (
               [position] => 4 
               [url] => http://www.aboveandbeyond.co.uk/gps-and-navigation/gps-systems/satmap 
              ) 

            ) 

С точки зрения кода я до сих пор, я сумел захватить JSON, превратить его в массив и пытается напечатать эти значения в таблицу, используя Еогеасп петлю ниже, но я не знаете, как ссылаться на значение ключевого слова ?;

 

    foreach($data as $rows) { 
     echo ''; 
     echo ''.$rows['??'].''; 
     echo ''.$rows['position'].''; 
     echo ''.$rows['url'].''; 
    } 

Любая помощь, которую высоко оценили, я нашел высоко и низко, но до сих пор не смог найти ничего.

+0

Я не понимаю вопрос. Есть только «позиция» и «url», и он, похоже, не меняется между «garmin gps systems», «satmap gps systems», они оба находятся в одном массиве. Не могли бы вы уточнить свой вопрос. – Vallentin

ответ

0

Я хотел бы назначить этот массив $arr переменной и перебирать, предполагая, что существует множество мест, следующим образом:

foreach ($arr['data']['data'] as $date => $data) { 
    foreach ($data as $gps_key => $gps_data) { 
     $final[$date][] = array(
      "key" => $gps_key, 
      "position" => $gps_data['google']['position'], 
      "url" => $gps_data['google']['url'] 
     ); 
    } 
} 

var_dump($final); 

Результат:

Array 
(
    [2015-07-16] => Array 
     (
      [0] => Array 
       (
        [key] => garmin gps systems 
        [position] => 
        [url] => 
       ) 

      [1] => Array 
       (
        [key] => satmap gps systems 
        [position] => 
        [url] => 
       ) 

     ) 

) 
+0

Отличный материал, это работает. Можете ли вы использовать тот же цикл, чтобы вытащить ['position'] и ['url'] из массива ['google']? – swanny86uk

+0

да .. вопрос, где бы вы хотели разместить позицию/url после его вытаскивания. должен ли он идти в том же конечном массиве? – CodeGodie

+0

Моя цель - иметь доступ к значению ключевого слова, которое теперь работает благодаря себе! Значения позиции и URL-адреса массива [google] для отображения в столбце ключевого слова таблицы, столбца позиции и столбца URL. – swanny86uk

0

Даже при изменении значений ключа вы все равно можете перебирать с помощью $array[0], $array[1] и т. д.

Смежные вопросы