在php中获取数组第一项的最快最容易的方法是什么? 我只需要保存在字符串中的数组的第一项,并且不能修改数组。
答案 0 :(得分:5)
我会说这是非常优化的:
echo reset($arr);
答案 1 :(得分:3)
我不得不试试这个
$max = 2000;
$array = range(1, 2000);
echo "<pre>";
$start = microtime(true);
for($i = 0; $i < $max; $i ++) {
$item = current($array);
}
echo microtime(true) - $start ,PHP_EOL;
$start = microtime(true);
for($i = 0; $i < $max; $i ++) {
$item = reset($array);
}
echo microtime(true) - $start ,PHP_EOL;
$start = microtime(true);
for($i = 0; $i < $max; $i ++) {
$item = $array[0];
}
echo microtime(true) - $start ,PHP_EOL;
$start = microtime(true);
for($i = 0; $i < $max; $i ++) {
$item = &$array[0];
}
echo microtime(true) - $start ,PHP_EOL;
$start = microtime(true);
for($i = 0; $i < $max; $i ++) {
$item = array_shift($array);
}
echo microtime(true) - $start ,PHP_EOL;
输出
0.03761100769043
0.037437915802002
0.00060200691223145 <--- 2nd Position
0.00056600570678711 <--- 1st Position
0.068138122558594
所以最快的是
$item = &$array[0];
答案 2 :(得分:1)
使用reset
:
<?php
$array = Array(0 => "hello", "w" => "orld");
echo reset($array);
// Output: "hello"
?>
请注意,使用此数组时,数组的光标将设置为数组的开头。
(当然,您可以将结果存储到字符串而不是echo
中,但我会使用echo
进行演示。)
答案 3 :(得分:0)
这样的东西?:
$firstitem = $array[0];
答案 4 :(得分:0)
答案 5 :(得分:0)
最有效的是获取引用,因此不涉及字符串复制:
$first = &$array[0];
请确保不要修改$first
,因为它也会在数组中修改。如果你必须修改它,那么寻找其他答案。