Mảng diff_ key PHP

Hai khóa từ cặp key => value chỉ được coi là bằng nhau nếu (string) $key1 === (string) $key2. Nói cách khác, một kiểm tra kiểu nghiêm ngặt được thực hiện để biểu diễn chuỗi phải giống nhau

$array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);

var_dump(array_diff_key($array1, $array2));
?>

Hàm array_diff_key() trong PHP tính toán sự khác biệt của một mảng so với các mảng khác dựa trên các khóa. Chỉ khóa/chỉ mục của mảng được sử dụng để so sánh

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cú pháp của array_diff_key() và cách sử dụng hàm này để tìm sự khác biệt của một mảng với các mảng khác dựa trên các khóa, bao gồm các tình huống khác nhau dựa trên loại mảng và đối số

Cú pháp – array_diff_key()

Cú pháp của hàm PHP array_diff_key() là

array_diff_key ( array $array1 , array $array2 [, array $.. ] ) : array

Ở đâu

Tham sốDescriptionarray1[bắt buộc] Mảng quan tâm. So sánh các khóa/chỉ mục của mảng này với các mảng khác '. mảng2[bắt buộc] Mảng tham chiếu. Các khóa của mảng này được sử dụng để so sánh với

Cùng với mảng2, bạn có thể cung cấp bao nhiêu mảng để so sánh với. Nhưng các mảng bổ sung này là tùy chọn

Giá trị trả về

Hàm array_diff_key() trả về một mảng các phần tử có các khóa có trong mảng $array1 nhưng không có trong mảng $array2 hoặc các mảng khác (nếu được cung cấp)

Ví dụ – Tính toán sự khác biệt của mảng (Phím)

Trong ví dụ này, chúng ta sẽ lấy một mảng kết hợp, mảng1, với các cặp khóa-giá trị, so sánh nó với một mảng khác là mảng2 và tìm sự khác biệt của chúng bằng cách sử dụng hàm array_diff_key()

Chương trình PHP

'apple', 'b'=>'banana', 'c'=>'cherry');
$array2 = array('a'=>'apricot', 'c'=>'cherry');
$result = array_diff_key($array1, $array2);
print_r($result);
?>

đầu ra

Mảng diff_ key PHP

Các khóa 'a''c' của mảng1 có trong mảng2. Nhưng khóa 'b' của mảng1 không có trong mảng2. array_diff_key() trả về mảng với các cặp khóa-giá trị, có các khóa có trong mảng1, nhưng không có trong mảng2. Do đó, mảng kết quả chỉ có cặp khóa-giá trị với khóa 'b'

'b'=>'banana''b1'=>'banana' khác nhau ở phần chính

Ví dụ - Tính toán sự khác biệt của mảng so với nhiều mảng

Trong ví dụ này, chúng ta sẽ lấy một mảng. mảng1 và tìm sự khác biệt của mảng này so với hai mảng. mảng2 và mảng3

Chương trình PHP

'apple', 'b'=>'banana', 'c'=>'cherry');
$array2 = array('a'=>'apricot');
$array3 = array('c'=>'cranberry');
$result = array_diff_key($array1, $array2, $array3);
print_r($result);
?>

đầu ra

Mảng diff_ key PHP

Khóa 'a' có trong mảng2 và khóa 'c' có trong mảng2. Các khóa còn lại của mảng1 không có trong bất kỳ mảng nào [mảng2, mảng3]. Vì vậy, các cặp khóa-giá trị của mảng1 không có trong các mảng khác được trả về trong mảng kết quả

Ví dụ - Tính toán sự khác biệt của các mảng được lập chỉ mục dựa trên chỉ mục

Trong ví dụ này, chúng tôi sẽ lấy các mảng được lập chỉ mục và tìm sự khác biệt của chúng. array_diff_key() sẽ chỉ xem xét khóa hoặc chỉ mục để tính toán sự khác biệt. Trong các ví dụ trước của chúng tôi, chúng tôi đã lấy các mảng kết hợp, vì vậy khóa được xem xét trong các chương trình đó. Nhưng ở đây, chúng tôi đang lấy các mảng được lập chỉ mục. Vì vậy, chỉ số sẽ được xem xét trong khi tính toán sự khác biệt

Để hiểu rõ hơn, chúng tôi đã in ra các mảng đầu vào cũng như biểu diễn chỉ mục

Chương trình PHP

";
print_r($array2);
echo "
"; print_r($result); ?>

đầu ra

Mảng diff_ key PHP

Các giá trị có chỉ số 0 và 1 có mặt trong cả hai mảng. Nhưng giá trị với chỉ số 2, có trong mảng1, nhưng không có trong mảng2. Do đó, giá trị với chỉ số 2 sẽ là sự khác biệt được tính toán bởi array_diff_key()

Phần kết luận

Trong Hướng dẫn PHP này, chúng ta đã học cách tính toán sự khác biệt của các mảng chỉ xem xét khóa/chỉ mục, sử dụng hàm PHP Array array_diff_key()

Đây là một chức năng sẵn có của PHP. Chức năng này đã được giới thiệu trong PHP 5. 1. Hàm array_diff_key() so sánh các khóa của hai hoặc nhiều mảng và trả về các mục từ mảng1 không có trong mảng2 hoặc mảng3, v.v.

cú pháp

Tham sốMô tảMảng bắt buộc1Mảng để so sánh từmảng bắt buộc2Mảng để so sánh với mảng bắt buộc3Mảng khác để so sánh vớiMảng bắt buộcTùy chọn

Loại trả lại

Trả về một mảng chứa các mục từ mảng1 không có trong bất kỳ mảng nào khác

ví dụ 1

đầu ra

ví dụ 2

đầu ra

Array(  [20] => Laxman   [30] => Rahul [40] => Ganguly [50] => Yuvi )

ví dụ 3

đầu ra

Ví dụ 4

đầu ra

Array ( [a1]=> red  [c3]=> blue  [d4]=> black )