× Giới thiệu Lịch khai giảng Tin tức Sản phẩm học viên

Array Key trong PHP - Hướng dẫn cách sử dụng Array key

27/11/2023 01:45

Hàm PHP array_keys() chấp nhận một mảng và trả về tất cả các khóa hoặc một tập hợp con các khóa của mảng.

Giới thiệu về hàm array_keys trong PHP

Hàm PHP array_keys() chấp nhận một mảng và trả về tất cả các khóa hoặc một tập hợp con các khóa của mảng.

array_keys ( array $array , mixed $search_value , bool $strict = false ) : arrayNgôn ngữ mã: PHP (php)

Trong cú pháp này:

  • $arraylà mảng đầu vào.
  • $search_valuechỉ định giá trị của các khóa cần tìm kiếm.
  • $strict nếu được đặt thành true, hàm array_keys() sử dụng toán tử giống hệt (===) để khớp giá trị tìm kiếm với các khóa mảng. Nếu không, hàm sẽ sử dụng toán tử bằng nhau (==) để khớp.

Hàm array_keys() trả về một mảng chứa tất cả các khóa trong mảng đầu vào.

Ví dụ về hàm array_keys() trong PHP

Hãy lấy một số ví dụ về cách sử dụng hàm array_keys().

1) Sử dụng ví dụ về hàm array_keys()

Ví dụ sau đây cho thấy cách lấy tất cả các khóa của một mảng được lập chỉ mục:

<?php

$numbers = [10, 20, 30];

$keys = array_keys($numbers);

print_r($keys);Ngôn ngữ mã: HTML, XML (xml) 

Đầu ra:

Array
(
    [0] => 0
    [1] => 1
    [2] => 2
)Ngôn ngữ mã: PHP (php)

Làm thế nào nó hoạt động.

  • Đầu tiên, xác định một mảng chứa ba số.
  • Thứ hai, sử dụng hàm array_keys() để lấy tất cả các khóa của mảng $numbers.
  • Thứ ba, hiển thị các phím.

Vì $numbers là một mảng được lập chỉ mục nên hàm array_keys() trả về các phím số của mảng.

Ví dụ sau sử dụng hàm array_keys() để lấy các khóa của toàn bộ mảng có giá trị là 20:

<?php

$numbers = [10, 20, 30];

$keys = array_keys($numbers, 20);

print_r($keys);
Ngôn ngữ mã: HTML, XML (xml) 

Đầu ra:

Array
(
    [0] => 1
)Ngôn ngữ mã: PHP (php)

Hàm array_keys() trả về khóa 1 vì khóa 1 chứa giá trị 20.

2) Sử dụng hàm array_keys() của PHP với ví dụ về mảng kết hợp

Ví dụ sau minh họa cách sử dụng hàm array_keys() với mảng kết hợp:

<?php

$user = [
	'username' => 'admin',
	'email' => 'admin@phptutorial.net',
	'is_active' => '1'
];

$properties = array_keys($user);

print_r($properties);
Ngôn ngữ mã: HTML, XML (xml) 

Đầu ra:

Array
(
    [0] => username
    [1] => email
    [2] => is_active
)Ngôn ngữ mã: PHP (php)

Làm thế nào nó hoạt động.

  • Đầu tiên, xác định một mảng kết hợp $user chứa ba khóa usernameemail và < a i=4>.is_active
  • Thứ hai, lấy khóa của mảng $user bằng hàm array_keys().
  • Thứ ba, hiển thị các phím được trả về.

Ví dụ sau sử dụng hàm array_keys() để lấy các khóa có giá trị bằng 1:

$user = [
	'username' => 'admin',
	'email' => 'admin@phptutorial.net',
	'is_active' => '1'
];

$properties = array_keys($user, 1);

print_r($properties);Ngôn ngữ mã: PHP (php)

Đầu ra:

Array
(
    [0] => is_active
)Ngôn ngữ mã: PHP (php)

Hàm array_keys() trả về một khóa, đó là is_active. Tuy nhiên, is_active chứa chuỗi '1' chứ không phải số 1. Điều này là do array_keys() sử dụng toán tử đẳng thức (==) để so sánh trong tìm kiếm theo mặc định.

Để kích hoạt so sánh đẳng thức nghiêm ngặt (===) khi tìm kiếm, bạn chuyển true làm đối số thứ ba của hàm array_keys() như thế này:< /span>

<?php

$user = [
	'username' => 'admin',
	'email' => 'admin@phptutorial.net',
	'is_active' => '1'
];

$properties = array_keys($user, 1, true);

print_r($properties);Ngôn ngữ mã: HTML, XML (xml) 

Đầu ra:

Array
(
)Ngôn ngữ mã: JavaScript (javascript)

Bây giờ, hàm array_keys() trả về một mảng trống.

Tìm các khóa mảng vượt qua bài kiểm tra

Hàm sau trả về các khóa của một mảng vượt qua bài kiểm tra được chỉ định một cuộc gọi lại:

<?php

function array_keys_by(array $array, callable $callback): array
{
	$keys = [];
	foreach ($array as $key => $value) {
		if ($callback($key)) {
			$keys[] = $key;
		}
	}

	return $keys;
}Ngôn ngữ mã: HTML, XML (xml) 

Ví dụ sau sử dụng hàm array_keys_by() ở trên để tìm các khóa chứa chuỗi '_post':

<?php

$permissions = [
	'edit_post' => 1,
	'delete_post' => 2,
	'publish_post' => 3,
	'approve' => 4,
];

$keys = array_keys_by($permissions, function ($permission) {
	return strpos($permission, 'post');
});

print_r($keys);