2013-03-14 144 views
0

陣列我從一個陣列試圖輸出特定的值,但該值在不同的地方每個陣列運行時,如下圖所示:搜索特定字符串

在一個頁面:

Array 
(
    [id] => 12445 
    [countries] => Array 
     (
      [0] => Array 
       (
        [iso_3166_1] => GB 
        [certification] => 12A 
        [release_date] => 2011-07-07 
       ) 

      [1] => Array 
       (
        [iso_3166_1] => US 
        [certification] => PG-13 
        [release_date] => 2011-07-15 
       ) 

      [2] => Array 
       (
        [iso_3166_1] => DE 
        [certification] => 12 
        [release_date] => 2011-07-12 
       ) 
} 

在另一頁:

Array 
(
    [id] => 673 
    [countries] => Array 
     (
      [0] => Array 
       (
        [iso_3166_1] => US 
        [certification] => PG 
        [release_date] => 2004-06-04 
       ) 

      [1] => Array 
       (
        [iso_3166_1] => GB 
        [certification] => PG 
        [release_date] => 2004-05-31 
       ) 

      [2] => Array 
       (
        [iso_3166_1] => IT 
        [certification] => T 
        [release_date] => 2004-06-04 
       ) 
} 

正如你可以看到,在一個頁面上的「GB」字符串是在數組中的位置0,在另一方面,它是在位置1。現在,該頁面該代碼正在被部署o nto是動態的,所以我不能硬編碼$array['countries'][0]['release_date'],其中'release_date'是我想要從數組中拉出的實際值,所以我想我需要代碼來搜索'GB '(或'US'或任何需要返回的國家/地區),找到包含該字符串的索引號,並將其作爲$ uk_release_date或某些此類指定的變量動態放入查詢中。

在此先感謝!

+0

嗨亞歷克斯,看看這個話題:http://stackoverflow.com/questions/1019076/how-to-search-by-key-value-in-a-multidimensional-array-in-php – 2013-03-14 12:19:29

回答

1
$index = -1; 

foreach($array['countries'] as $k=>$v) { 
    if(array_search('GB', $v)) { // Search for GB 
    $index = $k; 
    break; 
    } 
} 

echo $array['countries'][$index]['release_date']; // This will be the release date for GB 
+0

謝謝,這是我嘗試的第一個解決方案,它完美運行! – 2013-03-14 12:30:34