2016-06-11 3 views
0

Сегодня я пытаюсь получить некоторые данные из массива PHP, но я не знаю, как это сделать, потому что я не должен знать имя первого ключа.Получение данных в массиве PHP

Array 
(
[5bnuQsT1Y4S9yk8LRhBeLtT5PWqoAYrv2XlIGu1A] => Array 
    (
     [token] => TeamSpeak3_Helper_String Object 
      (
       [string:protected] => 5bnuQsT1Y4S9yk8LRhBeLtT5PWqoAYrv2XlIGu1A 
       [position:protected] => 0 
      ) 

     [token_type] => 0 
     [token_id1] => 8 
     [token_id2] => 0 
     [token_created] => 1465668613 
     [token_description] => 
    ) 

[df01kyz5BWtgFXDFT+70g5oSze2e3WijYEfbOSDO] => Array 
    (
     [token] => TeamSpeak3_Helper_String Object 
      (
       [string:protected] => df01kyz5BWtgFXDFT+70g5oSze2e3WijYEfbOSDO 
       [position:protected] => 0 
      ) 

     [token_type] => 0 
     [token_id1] => 8 
     [token_id2] => 0 
     [token_created] => 1465668966 
     [token_description] => 
    ) 

) 

Я хотел бы получить значение каждого ключа называется [string:proected]

Я попытался vardump это: $array[0][0] и это: $array[0] но они настроены на NULL.

Когда я делаю vardump($array["5bnuQsT1Y4S9yk8LRhBeLtT5PWqoAYrv2XlIGu1A"]["token"] Я получаю только объект, но мне еще нужно установить цикл, чтобы получить все строки.

Можете ли вы мне помочь?

Спасибо!

+0

Еогеасп цикл может помочь, если структура массива же. – phraniiac

+0

'reset ($ array)' http://php.net/manual/en/function.reset.php, чтобы получить первый элемент массива, для каждой 'string: protected', это должно помочь' для каждого' – ArtisticPhoenix

ответ

1

Вы можете использовать цикл Еогеасп, чтобы захватить каждый индекс из массива, как это:

<?php 

$data = array (
    '5bnuQsT1Y4S9yk8LRhBeLtT5PWqoAYrv2XlIGu1A' => array (
     'token' => array (
      'string:protected' => '5bnuQsT1Y4S9yk8LRhBeLtT5PWqoAYrv2XlIGu1A', 
      'token_type' => 0, 
      'token_id1'=> 8, 
      'token_id2' => 0, 
      'token_created' => 1465668613, 
      'token_description' => '', 
     ), 
    ), 
    'df01kyz5BWtgFXDFT+70g5oSze2e3WijYEfbOSDO' => array (
     'token' => array (
      'string:protected' => 'df01kyz5BWtgFXDFT+70g5oSze2e3WijYEfbOSDO', 
      'token_type' => 0, 
      'token_id1'=> 8, 
      'token_id2' => 0, 
      'token_created' => 1465668966, 
      'token_description' => '', 
     ), 
    ), 
); 

foreach($data as $index => $value) { 
    echo $data[$index]['token']['string:protected'] . '<br>'; 
} 
+0

О, спасибо, что это работа! Но можете ли вы объяснить мне, почему, если я пишу: 'echo $ data [0] ['token'] ['string: protected']. '
'; 'он не работает? – LightMan

+0

потому что '$ data [0]' доза не существует. его '$ data [5bnuQsT1Y4S9yk8LRhBeLtT5PWqoAYrv2XlIGu1A]', вы можете сделать 'key ($ array)' для получения текущего ключа и 'reset ($ array)', 'next()', 'prev()', 'end() 'для получения значения и более указателя. Или просто используйте цикл. – ArtisticPhoenix

+0

Точно - это ассоциативный массив - ассоциативные массивы не имеют числовых индексов, а только указатель строки. Использование этого метода является умным! :) – BLewis

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