/// it works like array_key_exists that can go deeper
function in_array_deeply[$keys, $multi]
{
$depths = array[];
$fun = null;
// inner, recursive function
function in_fun[$level, $arr_keys, $subject, &$depths] {
// only if array
if [is_array[$subject]] {
// if key exists
if [array_key_exists[$arr_keys[$level], $subject]] {
// record depth and go deeper
$depths[] = $arr_keys[$level];
in_fun[$level+1, $arr_keys, $subject[$arr_keys[$level]], $depths];
}
}
};
//
in_fun[0, $keys, $multi, $depths];
$srchd = implode['.',$keys];
$found = implode['.',$depths];
//
return [$srchd==$found];
}
/// example usage
$mapa = array['quadrada','comprida','amarela'];
$cidade = array[
'redonda' => array[
'curta' => 'o seu filme'
],
'quadrada' => array[
'longa' => array[
'azul' => array['logo',2,'mais',2,'são',4],
'amarela' => array['então',3,'vezes',2,'são',6],
'verde' => array['senão',100,'dividido por',2,'é',50]
],
'extravagante' => array[
'vermelha' => 'chama atenção',
'vinho' => 'cor de uva',
'ocre' => 1255
],
'comprida' => array[
'amarela' => 'brasilia dos mamonas',
'branca' => 'bandeira da paz',
'preta e branca' => 'peças do xadrez'
]
],
'oval' => array[
'conde' => 'lobo'
],
'plana' => array[
'curta' => array[
'azul' => array['e',2,'mais',2,'são',4],
'amarela' => array['sim',3,'vezes',2,'são',6],
'verde' => array['verdade',100,'dividido por',2,'é',50]
]
]
];
$encontrou = in_array_deeply[$mapa, $cidade];
echo $encontrou;
________số 8_______
Hàm PHP array_key_exists[] kiểm tra xem một khóa cụ thể có tồn tại trong mảng không. Hàm trả về TRUE nếu có khóa, ngược lại trả về FALSE
Hàm array_key_exists[] hoạt động cho cả mảng được lập chỉ mục và mảng kết hợp. Đối với các mảng được lập chỉ mục, chỉ mục là chìa khóa
Cú pháp – array_key_exists[]
Cú pháp của hàm array_key_exists[] là
array_key_exists[ key, array]
ở đâu
Tham sốDescriptionkey[bắt buộc] Khóa mà chúng ta phải tìm kiếm trong một mảng. mảng [bắt buộc] Mảng mà chúng ta phải tìm kiếm khóaGiá trị trả về của hàm
array_key_exists[] trả về giá trị boolean TRUE
nếu khóa tồn tại và FALSE
nếu khóa không tồn tại
ví dụ 1. Kiểm tra một mảng cho một khóa được chỉ định
Trong ví dụ này, chúng tôi sẽ lấy một mảng kết hợp với các cặp khóa-giá trị và kiểm tra xem khóa cụ thể "m"
có trong mảng không
Hàm array_key_exists[] xác định khóa đã chỉ định có tồn tại trong một mảng hay không. Nếu khóa tồn tại, nó trả về 1, nếu không thì trả về trống [không có gì]. Phải mất hai tham số
cú pháp
mảng_key_exists[key,array_input]
Thông số
- Khóa chỉ định tên khóa
- Array_input là mảng
Hãy cùng xem các ví dụ để hiểu rõ hơn về khái niệm này
ví dụ 1
Trong ví dụ này, chúng ta sẽ tạo một mảng. Hoa có 4 cặp khóa-giá trị
'flower_name'=>'sen','sepal'=>4,'petal'=>3,'area'=>'water'
Sau đó, chúng ta sẽ kiểm tra key-flower_name có tồn tại hay không
đầu ra
Chúng ta có thể thấy rằng hàm array_key_exists[] trả về 1 vì key flower_name tồn tại
ví dụ 2
Trong ví dụ này, chúng ta sẽ tạo một mảng. Hoa có 4 cặp khóa-giá trị. 'flower_name'=>'sen','sepal'=>4,'petal'=>3,'area'=>'water'
Sau đó chúng ta sẽ kiểm tra key-flower_id có tồn tại hay không
đầu ra
Ta có thể thấy rằng hàm array_key_exists[] trả về rỗng [không có gì] do key flower_id không tồn tại
Nếu chỉ có các giá trị trong mảng đầu vào, thì theo mặc định, các khóa sẽ là 0,1,2,3…
Ví dụ: nếu có 4 giá trị trong một mảng thì các khóa là 0,1,2 và 3
ví dụ 3
Trong ví dụ này, chúng ta sẽ tạo một mảng Flower có 4 giá trị. ‘sen’,4,3,’water’ và kiểm tra xem các phím -0,1,2,3 có tồn tại hay không
đầu ra
Chúng ta có thể thấy rằng các khóa tồn tại trong mảng. Cũng có thể sử dụng hàm array_key_exists[] bên trong điều kiện if
Ví dụ 4
Trong ví dụ này, chúng tôi sẽ kiểm tra xem các khóa -0 và 6 có tồn tại trong mảng đã cho hay không sử dụng câu lệnh if-else
đầu ra
Đầu tiên, nếu khối được thực thi vì key-0 có trong mảng đã cho, thì khối thứ hai được thực thi vì key-6 không tồn tại trong mảng
Phần kết luận
Trong hướng dẫn này, chúng ta đã thảo luận cách kiểm tra xem khóa đã cho có tồn tại trong mảng hay không bằng cách sử dụng hàm array_key_exists[]. Nó sẽ trả về 1 nếu có khóa trong mảng, nếu không, nó sẽ trả về trống. Chúng tôi cũng đã triển khai chức năng này bên trong các câu lệnh if-else