2016-12-14 94 views
0

我有以下設置,我試圖使用數組結構的數組。一旦在數組數組中找到值,我不確定如何獲取鍵值。php如何獲得數組的數組鍵值

$testboat = 'smallest boat'; 
$allboats = array(40=>array(1=>'big boat', 
          2=>'bigger boat' 
        ), 
        30=>array(1=>'little boat', 
          2=>'tiny boat', 
          3=>'smallest boat')); 

foreach($allboats as $boats){ 
    foreach($boats as $boat){ 
     if($testboat == $boat) { 

     /*looking to echo the key or value 30; */ 

     } 

    } 
} 
+6

'foreach($ boats as $ key => $ boat)'將會是一個開始。 – deceze

+0

謝謝,但我發現這是錯誤的地方開始。 ($ allboats作爲$ key => $ boats)提供了正確的位置。 – DCR

回答

1

使用$key => $value語法foreach()。此外,通過內部陣列無需循環:

foreach($allboats as $key => $boats){ 
    if(in_array($testboat, $boats)) { 
     echo $key; 
     break; //if you want to stop after found 
    } 
} 

如果你想要得到的外鍵和內部密鑰:

foreach($allboats as $key => $boats){ 
    if(($inner_key = array_search($testboat, $boats)) !== false) { 
     echo "$key and $inner_key"; 
     break; //if you want to stop after found 
    } 
} 
+0

我可以知道'!== false'什麼嗎? – FullStack

+1

@FullStack嚴格不等於false,因爲'array_search'可以返回0作爲一個鍵,它會鬆散地評估爲false。 – AbraCadaver

0
$testboat = 'smallest boat'; 
$allboats = array(40=>array(1=>'big boat', 
          2=>'bigger boat' 
        ), 
        30=>array(1=>'little boat', 
          2=>'tiny boat', 
          3=>'smallest boat')); 

foreach($allboats as $id => $boats){ 
    //$id will be 40, then 30 
    foreach($boats as $id2 => $boat){ 
     //$id2 will be 1,2... 
     if($testboat == $boat) { 
     echo $id . '-' . $id2; 
     /*looking to echo the key or value 30; */ 

     } 
    } 
} 
0

你必須做到以下幾點:

foreach($allboats as key1 => $boats){ 
    foreach($boats as key2 => $boat){