Hướng dẫn php get first key of array - php lấy khóa đầu tiên của mảng

(Php 7> = 7.3.0, Php 8)

Array_Key_First - Nhận khóa đầu tiên của một mảngGets the first key of an array

Sự mô tả

mảng_key_first (mảng $array): int | chuỗi | null(array $array): int|string|null

Thông số

array

Một mảng.

Trả về giá trị

Trả về phím đầu tiên của array nếu mảng không trống; null khác.null otherwise.

Ví dụ

Ví dụ #1 mảng cơ bản_key_first () sử dụngarray_key_first() Usage

$array = ['a' => 1'b' => 2'c' => 3];$firstKey array_key_first($array);var_dump($firstKey);
?>

Ví dụ trên sẽ xuất ra:

Ghi chú

Mẹo

Có một số cách để cung cấp chức năng này cho các phiên bản trước Php 7.3.0. Có thể sử dụng Array_Keys (), nhưng điều đó có thể không hiệu quả. Cũng có thể sử dụng reset () và key (), nhưng điều đó có thể thay đổi con trỏ mảng bên trong. Một giải pháp hiệu quả, không thay đổi con trỏ mảng bên trong, được viết là polyfill:array_keys(), but that may be rather inefficient. It is also possible to use reset() and key(), but that may change the internal array pointer. An efficient solution, which does not change the internal array pointer, written as polyfill:

if (!function_exists('array_key_first')) {
    function 
array_key_first(array $arr) {
        foreach(
$arr as $key => $unused) {
            return 
$key;
        }
        return 
NULL;
    }
}
?>

Xem thêm

  • Array_Key_Last () - Nhận khóa cuối cùng của một mảng
  • Đặt lại () - Đặt con trỏ bên trong của một mảng thành phần tử đầu tiên của nó

Vee W.

1 năm trước

Another way to get first array key with PHP older than 7.3.

foreach to get first key and value: 0.15501809120178 seconds 
reset+key to get first key and value: 0.29375791549683 seconds 
reset+key to get first key: 0.26421809196472 seconds 
array_keys to get first key: 10.059751987457 seconds
0

foreach to get first key and value: 0.15501809120178 seconds 
reset+key to get first key and value: 0.29375791549683 seconds 
reset+key to get first key: 0.26421809196472 seconds 
array_keys to get first key: 10.059751987457 seconds
1

github.com / Ahsankhatri ¶

1 năm trước

foreach to get first key and value: 0.15501809120178 seconds 
reset+key to get first key and value: 0.29375791549683 seconds 
reset+key to get first key: 0.26421809196472 seconds 
array_keys to get first key: 10.059751987457 seconds
2

foreach to get first key and value: 0.15501809120178 seconds 
reset+key to get first key and value: 0.29375791549683 seconds 
reset+key to get first key: 0.26421809196472 seconds 
array_keys to get first key: 10.059751987457 seconds
3

foreach to get first key and value: 0.15501809120178 seconds 
reset+key to get first key and value: 0.29375791549683 seconds 
reset+key to get first key: 0.26421809196472 seconds 
array_keys to get first key: 10.059751987457 seconds
4

github.com / Ahsankhatri ¶

Thật thú vị, vòng lặp foreach thực sự là cách hiệu quả nhất để làm điều này.

Vì OP được hỏi cụ thể về hiệu quả, nên chỉ ra rằng tất cả các câu trả lời hiện tại trên thực tế đều kém hiệu quả hơn nhiều so với một foreach.much worse when working with a large array.

Foreach không kém gì, hãy thoải mái sử dụng nó!

Chỉnh sửa 2015-03-03:

Các tập lệnh điểm chuẩn đã được yêu cầu, tôi không có bản gốc nhưng thay vào đó thực hiện một số bài kiểm tra mới.Lần này tôi tìm thấy foreach chỉ nhanh gấp đôi so với thiết lập lại/khóa.Tôi đã sử dụng một mảng 100 khóa và chạy từng phương pháp một triệu lần để có được sự khác biệt đáng chú ý, đây là mã của điểm chuẩn đơn giản:

$array = [];
for($i=0; $i < 100; $i++)
    $array["key$i"] = $i;

for($i=0, $start = microtime(true); $i < 1000000; $i++) {
    foreach ($array as $firstKey => $firstValue) {
        break;
    }
}
echo "foreach to get first key and value: " . (microtime(true) - $start) . " seconds 
"; for($i=0, $start = microtime(true); $i < 1000000; $i++) { $firstValue = reset($array); $firstKey = key($array); } echo "reset+key to get first key and value: " . (microtime(true) - $start) . " seconds
"; for($i=0, $start = microtime(true); $i < 1000000; $i++) { reset($array); $firstKey = key($array); } echo "reset+key to get first key: " . (microtime(true) - $start) . " seconds
"; for($i=0, $start = microtime(true); $i < 1000000; $i++) { $firstKey = array_keys($array)[0]; } echo "array_keys to get first key: " . (microtime(true) - $start) . " seconds
";

Trên Php 5.5 của tôi, đầu ra này:

foreach to get first key and value: 0.15501809120178 seconds 
reset+key to get first key and value: 0.29375791549683 seconds 
reset+key to get first key: 0.26421809196472 seconds 
array_keys to get first key: 10.059751987457 seconds

Đặt lại+khóa http://3v4l.org/b4drn/perf#tabs foreach http://3v4l.org/grogd/perf#tabs
foreach http://3v4l.org/gRoGD/perf#tabs