2015-03-10 2 views
-1

Я немного знаю о петле foreach. Я пытаюсь получить доступ к определенному значению или указателю каждый раз в этом массиве.Разбор многомерного массива в PHP

[formats] => Array 
    (
     [0] => Array 
      (
       [format] => nondash-171 - audio only (DASH audio) 
       [vcodec] => none 
       [format_note] => DASH audio 
       [abr] => 128 
       [url] => 
       [ext] => webm 
       [preference] => -10050 
       [format_id] => nondash-171 
      ) 

     [1] => Array 
      (
       [format] => nondash-140 - audio only (DASH audio) 
       [url] => none 
       [format_note] => DASH audio 
       [preference] => -10050 
       [format_id] => nondash-140 
      ) 

     [2] => Array 
      (
       [url] => http:// 
       [format] => nondash-278 - 144p (DASH video) 
       [preference] => -10040 
       [format_id] => 130 
      ) 

Значение массива будет меняться каждый раз, в зависимости от запроса. Я не уверен, в каком указателе содержится это значение. Напр.

$value = $json[formats][0][url] 

Я подробно расскажу о своих намерениях. Я намереваюсь это сделать.

if ($json[formats][0][format_id]=="130") 
    { $url_130 = $json[formats][0][url]} 

Но я не уверен, в котором указатель значение «130» будет hold.It может быть что угодно, как

$json[formats][1][format_id]=="130" 

или

$json[formats][2][format_id]=="130" 

Так что мне нужно, чтобы проверить каждый указатель, в котором будет переноситься значение [format_id] == "130". Затем установите правильный URL с правильным указателем.

+0

вы действительно должны научиться 'foreach'! – Alex

+0

Начать с многомерного array_search. Проверьте этот вопрос (http://stackoverflow.com/questions/6661530/php-multi-dimensional-array-search), который вам поможет. – Rikesh

+0

Да! Я должен научиться этому. Я хотел бы научиться этому от решения реального времени. Спасибо за ваше замечательное предложение @Alex. –

ответ

0

Если вам не нужна другая информация, вы можете создать массив только с URL-адресом и использовать индекс id как массив. Я предполагаю, что ваши format_id s являются числами.

$new_array = array(); 

foreach ($formats as $format) { 
    $new_array[$format['format_id']] = $format['url']; 
} 

после этого вы можете получить доступ с помощью индекса непосредственно

$url = $new_arry[130]; 
Смежные вопросы