2016-08-14 25 views
-2

我有一個多維數組,像這樣:查找ARRAY通過自己的價值觀

$a = array(
    'potatoe'=> array(
     'weight'=>24, 
     'label'=>'kon', 
     'year'=>2001, 

    ), 

    'apple'=> array(
     'weight'=>55, 
     'label'=>'krakat', 
     'year'=>1992, 
    ) 
); 

我正在尋找一種方式來搜索水果的名稱(其值)時,我只知道重量是55和一年是1992。怎麼做?

+4

一個簡單的foreach循環? – Rizier123

+0

我有興趣,如果有'array_search'或其他等 –

+2

不,PHP確實提供像'hammer()'或'screwdriver()'這樣的函數,但它不提供任何你想做的事情的函數'build_me_a_pink_house()'。但你當然可以用錘子和螺絲刀來建造粉紅色的房子。 – Rizier123

回答

0

你將不得不使用的foreach在它遍歷和測試每個元素。

function findFruit($array,$weight, $year){ 
    foreach($array as $key => $fruit){ 
     if($fruit['weight'] == $weight && $fruit['year'] == $year){ 
      return $key; 
     } 
    } 
} 

然後,只需使用功能:

$theFruit = $a[findFruit($a,55,1992)]; 
1

像這樣的事情也許

foreach ($a as $key => $value) { 
    if ($value['weight'] == 55 && $value['year'] == 1992) { 
     echo $key; 
    } 
} 

輸出

apple 
+1

你錯過了使用'==' – C2486

+0

有時'==='甚至更好,當比較相同的類型正確(字符串到字符串,int爲int) –