多次元配列で値に基づいて配列キーを取得する方法(PHP)


  1. array_search() 関数を使用する方法: array_search() 関数は、指定した値に対応する最初のキーを返します。以下のコード例は、多次元配列内で値に基づいてキーを検索する方法を示しています。

    $array = [
       'key1' => 'value1',
       'key2' => 'value2',
       'key3' => [
           'subkey1' => 'subvalue1',
           'subkey2' => 'subvalue2'
       ]
    ];
    $searchValue = 'subvalue2';
    $result = array_search($searchValue, $array, true);
    echo "キー: " . $result;  // 結果: キー: subkey2
  2. 配列の反復処理を使用する方法: 多次元配列を反復処理し、値が一致するキーを見つけることもできます。以下のコード例は、foreach ループを使用して値に基づいてキーを見つける方法を示しています。

    function searchKeyByValue($array, $searchValue) {
       foreach ($array as $key => $value) {
           if ($value === $searchValue) {
               return $key;
           }
           if (is_array($value)) {
               $result = searchKeyByValue($value, $searchValue);
               if ($result !== false) {
                   return $result;
               }
           }
       }
       return false;
    }
    $array = [
       'key1' => 'value1',
       'key2' => 'value2',
       'key3' => [
           'subkey1' => 'subvalue1',
           'subkey2' => 'subvalue2'
       ]
    ];
    $searchValue = 'subvalue2';
    $result = searchKeyByValue($array, $searchValue);
    echo "キー: " . $result;  // 結果: キー: subkey2

上記の方法を使用すると、多次元配列内で特定の値に基づいてキーを取得できます。必要に応じてこれらの方法をカスタマイズして使用してください。