2017-04-19 58 views
1

如果其他參數存在於其他數組中,我的任務是查找參數的值。我不知道如何用語言正確地描述它所以這裏是僞代碼:如果存在其他參數,則在數組中查找參數

if $_POST['from'] == X 

查找$array關鍵'name' == X及其關鍵'timezone'並且這個值保存爲參數:

$array = [ 
     [ 
      'name'  => 'A', 
      'timezone' => 'AB', 
     ], 
     [ 
      'name'  => 'B', 
      'timezone' => 'BC', 
     ], 
     [ 
      'name'  => 'C', 
      'timezone' => 'AB', 
     ], 

如果$_POST['name'] == B'timezone' == BC

如果X,時區= B,我可以做到10倍,但我認爲這不是最好的方法。我現在在這一步:

foreach ($array as $key => $value) { 
     foreach ($value as $key2 => $value2) { 
      if ($value2 == $_POST['from']) { 
       if ($key2 == 'timezone') { 
        echo $key; 
       } 
      } 
     } 
    } 
+0

的可能的複製[使用數組\ _search多維數組(http://stackoverflow.com/questions/ 7694843/using-array-search-for-multi-dimensional-array) –

回答

2

只要name值是唯一的:

echo array_column($array, 'timezone', 'name')[$_POST['from']]; 
  • name關鍵和timezone提取數組值
  • 訪問數組帶鑰匙$_POST['from']

當然,你可能會檢查,看看是否存在第一(假設你以前檢查isset($_POST['from'])):

$tz = array_column($array, 'timezone', 'name'); 

if(isset($tz[$_POST['from']])) { 
    echo $tz[$_POST['from']]; 
} 
+0

這是array_column的一個有趣用法 - 以前從未見過它。 –

+0

非常感謝。我嘗試了array_column,但不知道在這個函數中發展的可能性。 – KKK

+0

如果有幫助,請將其標記爲已接受。謝謝! – AbraCadaver