1. Hàm key() trong PHP

Hàm key() trong PHP được sử dụng để trả vê chỉ mục của phần tử trong mảng. Phần tử này sẽ là phần tử mà con trỏ nội bộ của mảng đang trỏ đến. Phần tử này có thể là phần tử đầu tiên hoặc phần tử tiếp theo mà con trỏ đang trỏ đến. Mỗi mảng đều có một con trỏ nội tại tới phần tử current của nó. Khi một mảng mới được tạo, con trỏ hiện tại được khởi tạo để tham chiếu đến phần tử đầu tiên trong mảng. Vì vậy mà theo mặc định, vị trí con trỏ ở chỉ số 0, tức là ở phần tử bắt đầu của mảng đã cho. Giá trị trả về chính là chỉ mục của phần tử hiện tại mà con trỏ nội bộ trỏ đến. Hàm sẽ trả về Null nếu bị lỗi , mảng được truyền vào là rỗng hay vị trí con trỏ nội bộ trỏ ra ngoài phần cuối của danh sách phần tử. Hàm key() được giới thiệu và sử dụng từ phiên bản PHP 4.0

2. Cú pháp hàm key() trong PHP

Ta có cú pháp của hàm key() trong PHP là :

key ($array)

Trong đó hàm key nhận một tham số duy nhất và cũng là bắt buộc $array là mảng đầu vào mà ta muốn kiểm tra. Nó sẽ kiểm tra vị trí của con trỏ nội bộ trong hàm và trả về chỉ mục của phần tử này. Nếu có lỗi gì xảy ra hay mảng truyền vào là rỗng thì hàm sẽ trả về Null . Hãy lưu ý rằng hàm key() sẽ không thay đổi vị trí con trỏ nội bộ trong mảng theo bất kỳ cách nào. Và nếu con trỏ nội bộ đang tồn tại ở giá trị có key kết hợp thì giá trị trả về chính là key này.

Ví dụ: trả lại key của phần tử từ vị trí con trỏ nội bộ hiện tại

<?php
$a1=array("PHP","Java","Python","HTML");
echo "Vị trí con trỏ nội bộ là: " . key($a1);
?>

Kết quả

Vị trí con trỏ nội bộ là: 0

Lưu ý

Từ phiên bản PHP 8.1.0 hàm key() không được chấp nhận khi sử dụng với các đối tượng.

3. Ví dụ về hàm key() trong PHP

Ví dụ 1:

<?php
$a1=array("PHP"=>"1","Java"=>"2","Python"=>"3","HTML"=>"4");
echo key($a1);
?>

Kết quả

PHP

Ví dụ 2:

<?php

$arr=array("PHP", "Java", "Python", "HTML");

next($arr);

echo "Chỉ số của phần tử hiện tại của mảng là: " . key($arr);
                
?>

Kết quả

Chỉ số của phần tử hiện tại của mảng là: 1

Trong ví dụ này có sử dụng thêm hàm next() trong PHP để di chuyển con trỏ nội bộ bên trong hàm lên một. Đây cũng chính là công dụng chính của hàm next() mà ta sẽ tìm hiểu kỹ hơn ở bài sau. Lúc này con trỏ nội bộ của mảng đã ở vị trí 1

Ví dụ 3:

<?php
$array = array(
    'lttd1' => 'PHP',
    'lttd2' => 'Java',
    'lttd3' => 'PHP',
    'lttd4' => 'Python',
    'lttd5' => 'PHP');


while ($names = current($array)) {
    if ($names == 'PHP') {
        echo key($array). "<br>";
    }
    next($array);
}
?>

Kết quả

lttd1
lttd3
lttd5

Trong ví dụ này ta vận dụng hàm key() để in ra những key có giá trị là “PHP” . Ta sẽ dùng một vòng lặp while sử dụng hàm current() để lấy ra và trả về giá trị của phần tử trong mảng mà con trỏ bên trong hiện đang trỏ đến và gán cho nó một biến $names . Lúc này nếu $names“PHP” thì sử dụng hàm key() để in ra key của nó. Cứ như vậy cho đến hết mảng và ta thu được kết quả như trên.