2012-01-12 16 views
0

私はページの下のような配列を持っています。私は[itag] => 22の配列番号を探したい。 は、この例では、これは[1]、意味されていますPHPの配列検索ですか?

[1] => Array 
     (
      [url] => asd2 
      [quality] => hd720 
      [fallback_host] => ax2 
      [type] => video/mp4; codecs=\"avc1.64001F, mp4a.40.2\" 
      [itag] => 22 
     ) 

は、どのように私はこれらの配列構造でこれを見つけることができますか?

Array 
(
    [0] => Array 
     (
      [url] => asd1 
      [quality] => hd720 
      [fallback_host] => ax1 
      [type] => video/webm; codecs=\"vp8.0, vorbis\" 
      [itag] => 45 
     ) 

    [1] => Array 
     (
      [url] => asd2 
      [quality] => hd720 
      [fallback_host] => ax2 
      [type] => video/mp4; codecs=\"avc1.64001F, mp4a.40.2\" 
      [itag] => 22 
     ) 

    [2] => Array 
     (
      [url] => asd3 
      [quality] => large 
      [fallback_host] => ax3 
      [type] => video/webm; codecs=\"vp8.0, vorbis\" 
      [itag] => 44 
     ) 

    [3] => Array 
     (
      [url] => asd4 
      [quality] => large 
      [fallback_host] => ax4 
      [type] => video/x-flv 
      [itag] => 35 
     ) 



) 

答えて

1

そしてローテクソリューション、何も気にせずに:

+0

ありがとう、ありがとう。 – BerkErarslan

+0

PHP <5.3はIEと似ています=(サポートしていれば、インターネットを抱えています。 – Rudie

0

array_filter:http://php.net/manual/en/function.array-filter.php

<?php 
$matches = array_filter($arr, function($el) { 
    return $el['itag'] == 22; 
}); 
print_r($matches); 
// or 
$key = key($matches); 
?> 

22が可変である場合、あなたはそれがクロージャのスコープに使用/インポートする必要があります:

... 
$matches = array_filter($arr, function($el) use ($someVar) { 
    return $el['itag'] == $someVar; 
... 
+0

あります構文エラー、私は$ el関数を理解していない、あなたはそれを呼び出すか、あなたdidntですか? – BerkErarslan

+0

@BerkErarslan古い(5.3より前の)PHPバージョンを使用している場合、匿名関数の構文エラーが発生します。アップグレードする時間:)関数を名前付き関数として取り出し、その名前をarray_filterに渡します。 – StasM