2017-04-19 8 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、timezone = Bの場合は10倍にすることができますが、これは最善の方法ではないと思います。私は、この段階で、今だ:

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

を可能な複製(http://stackoverflow.com/questions/ 7694843/array-search-for-multi-dimensional-array) –

答えて

2

は限りname値が一意であるよう:

echo array_column($array, 'timezone', 'name')[$_POST['from']]; 
  • キーとtimezoneアクセス
  • 値として配列として nameを持つ配列を抽出しますキー付き $_POST['from']

もちろん、あなたは(あなたが以前isset($_POST['from'])をチェックしていると仮定して)それが最初に存在するかどうかを確認することがあります[多次元配列の配列\ _searchを使用]の

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

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

これはarray_columnの面白い使い方です。 –

+0

よろしくお願いいたします。私はarray_columnを試しましたが、この機能でそのような開発可能性について知らなかったのです。 – KKK

+0

それが受け入れられたとマークしてください。ありがとう! – AbraCadaver

関連する問題