1

配列の検索は簡単です。

$array = array(0 => 'Zero', 1 => 'One', 2 => 'Two');
$text = $array[2]; // $text = 'Two'

しかし、中間の $array 変数が必要ない場合、ルックアップを配列リテラルにする組み込みの方法はありますか?

$text = array(0 => 'Zero', 1 => 'One', 2 => 'Two')[2]; // Syntax error
$text = array_value(2, array(0 => 'Zero', 1 => 'One', 2 => 'Two')); // Unknown command
4

2 に答える 2

5

PHP5.5以降、次のことができます:

$text = array(0 => 'Zero', 1 => 'One', 2 => 'Two')[2];

5.5 より前のバージョンarray_value()では、関数が組み込まれていないため、独自に関数をコーディングする必要があります。このような:

function array_value($key, $array) {
    if(!array_key_exists($key, $array)) {
        throw new Exception('Array has no index ' . $key);
    }

    return $array[$key];
}
于 2013-04-26T11:11:24.370 に答える