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 回答
1

另一种解决方案:

$array = array(0 => 'Zero', 1 => 'One', 2 => 'Two');
$pos = 2;

echo current(array_slice($array, $pos, 1));
于 2013-04-26T11:23:59.843 回答