获取数组第一项的最快方法是什么?

时间:2012-10-08 10:38:09

标签: php arrays performance

  

可能重复:
  Get first element of an array

在php中获取数组第一项的最快最容易的方法是什么? 我只需要保存在字符串中的数组的第一项,并且不能修改数组。

6 个答案:

答案 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"
?>

请注意,使用此数组时,数组的光标将设置为数组的开头。

Live demonstration

(当然,您可以将结果存储到字符串而不是echo中,但我会使用echo进行演示。)

答案 3 :(得分:0)

这样的东西?:

$firstitem = $array[0];

答案 4 :(得分:0)

reset这样做:

$item = reset($array);

无论键是什么,这都会起作用,但它会移动数组指针(我从不有理由担心这一点,但应该提到它。)

答案 5 :(得分:0)

最有效的是获取引用,因此不涉及字符串复制:

$first = &$array[0];

请确保不要修改$first,因为它也会在数组中修改。如果你必须修改它,那么寻找其他答案。