2

重複の可能性:
配列の最初の要素を取得する

PHPで配列の最初の項目を取得する最も速くて簡単な方法は何ですか? 文字列に保存された配列の最初の項目のみが必要であり、配列を変更してはなりません。

4

6 に答える 6

5

これは非常に最適化されていると思います。

echo reset($arr);
于 2012-10-08T10:39:34.777 に答える
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];
于 2012-10-08T10:49:27.263 に答える
1

使用reset

<?php
$array = Array(0 => "hello", "w" => "orld");
echo reset($array);
// Output: "hello"
?>

これを使用すると、配列のカーソルが配列の先頭に設定されることに注意してください。

ライブデモンストレーション

(当然、結果をechoingの代わりに文字列に格納できますが、私echoはデモンストレーションの目的で使用します。)

于 2012-10-08T10:39:29.503 に答える
0

このようなもの?:

$firstitem = $array[0];
于 2012-10-08T10:39:26.650 に答える
0

resetこれを行います:

$item = reset($array);

これはキーが何であるかに関係なく機能しますが、配列ポインタを移動します(これについて心配する理由はありませんでしたが、言及する必要があります)。

于 2012-10-08T10:39:47.100 に答える
0

最も効率的なのは参照を取得することです。そのため、文字列のコピーは必要ありません。

$first = &$array[0];

$first配列でも変更されるため、変更しないでください。変更する必要がある場合は、他の回答の選択肢を探してください。

于 2012-10-08T10:41:08.530 に答える