function multi_diff[$arr1,$arr2]{
$result = array[];
foreach [$arr1 as $k=>$v]{
if[!isset[$arr2[$k]]]{
$result[$k] = $v;
} else {
if[is_array[$v] && is_array[$arr2[$k]]]{
$diff = multi_diff[$v, $arr2[$k]];
if[!empty[$diff]]
$result[$k] = $diff;
}
}
}
return $result;
}
//example:
var_dump[multi_diff[
array[
"A"=>array[
"A1"=>array['A1-0','A1-1','A1-2','A1-3'],
"A2"=>array['A2-0','A2-1','A2-2','A2-3'],
"A3"=>array['A3-0','A3-1','A3-2','A3-3']
],
"B"=>array[
"B1"=>array['B1-0','B1-1','B1-2','B1-3'],
"B2"=>array['B2-0','B2-1','B2-2','B2-3'],
"B3"=>array['B3-0','B3-1','B3-2','B3-3']
],
"C"=>array[
"C1"=>array['C1-0','C1-1','C1-2','C1-3'],
"C2"=>array['C2-0','C2-1','C2-2','C2-3'],
"C3"=>array['C3-0','C3-1','C3-2','C3-3']
],
"D"=>array[
"D1"=>array['D1-0','D1-1','D1-2','D1-3'],
"D2"=>array['D2-0','D2-1','D2-2','D2-3'],
"D3"=>array['D3-0','D3-1','D3-2','D3-3']
]
],
array[
"A"=>array[
"A1"=>array['A1-0','A1-1','A1-2','A1-3'],
"A2"=>array['A2-0','A2-1','A2-2','A2-3'],
"A3"=>array['A3-0','A3-1','A3-2']
],
"B"=>array[
"B1"=>array['B1-0','B1-2','B1-3'],
"B2"=>array['B2-0','B2-1','B2-2','B2-3'],
"B3"=>array['B3-0','B3-1','B3-3']
],
"C"=>array[
"C1"=>array['C1-0','C1-1','C1-2','C1-3'],
"C3"=>array['C3-0','C3-1']
],
"D"=>array[
"D1"=>array['D1-0','D1-1','D1-2','D1-3'],
"D2"=>array['D2-0','D2-1','D2-2','D2-3'],
"D3"=>array['D3-0','D3-1','D3-2','D3-3']
]
]
]];
Array3, ...
Không bắt buộc. Nhiều mảng hơn để so sánh với
Chi tiết kỹ thuật
Giá trị trở lại:
Trả về một mảng chứa các mục từ Array1 không có trong bất kỳ mảng nào khác
Array [ [a] => Green [b] => Blue ]
Flowchart:
Phiên bản PHP:
4.3+
Nhiều ví dụ hơn Write a PHP script to create a two-dimensional array [4x4], initialized to 10.
Next: Write a PHP script to combine [using one array for keys and another for its values] the specified two arrays.
Một mảng đa chiều là một mảng chứa một hoặc nhiều mảng. PHP hỗ trợ các mảng đa chiều là hai, ba, bốn, năm hoặc nhiều cấp độ sâu. Tuy nhiên, các mảng sâu hơn ba cấp độ khó có thể quản lý đối với hầu hết mọi người.
Mảng liên kết đa chiều trong PHP là gì?
Mảng đa chiều php được sử dụng để lưu trữ một mảng trái ngược với các giá trị không đổi. Mảng liên kết lưu trữ dữ liệu dưới dạng các cặp khóa và giá trị trong đó khóa có thể là một số nguyên hoặc chuỗi. Mảng liên kết đa chiều thường được sử dụng để lưu trữ dữ liệu trong mối quan hệ nhóm.
- PHP: Lời khuyên trong ngày
- PHP: Làm thế nào để chuyển đổi chuỗi thành boolean?
Các chuỗi luôn đánh giá để boolean true trừ khi chúng có giá trị được coi là "trống" bằng PHP [lấy từ tài liệu để trống]:
$test_mode_mail = $string === 'true'? true: false;
"" [một chuỗi trống];
$test_mode_mail = [$string === 'true'];
"0" [0 dưới dạng chuỗi]
filter_var[$string, FILTER_VALIDATE_BOOLEAN];
Nếu bạn cần đặt boolean dựa trên giá trị văn bản của một chuỗi, thì bạn sẽ cần kiểm tra sự hiện diện hoặc bằng cách khác của giá trị đó.
Chỉnh sửa: Mã trên được dành cho sự rõ ràng của sự hiểu biết. Trong thực tế sử dụng mã sau có thể phù hợp hơn:
So sánh các khóa và giá trị của ba mảng và trả về sự khác biệt:
Thí dụ
So sánh các khóa và giá trị của hai mảng và trả về sự khác biệt: keys and values of two arrays, and return the differences:
"màu đỏ", "b" => "màu xanh lá cây", "c" => "màu xanh", "d" => "màu vàng"]; $ a2 = mảng ["e" => "red", "f" => "màu xanh lá cây", "g" => "blue"];
$a1=array["a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"];
$a2=array["a"=>"red","b"=>"green","c"=>"blue"];
$ result = mảng_diff_assoc [$ a1, $ a2]; print_r [$ result];?>
print_r[$result];
?>
Hãy tự mình thử »
So sánh các khóa và giá trị của ba mảng và trả về sự khác biệt:
"màu đỏ", "b" => "màu xanh lá cây", "c" => "màu xanh", "d" => "màu vàng"]; $ a2 = mảng ["a" => "red", "f" => "green", "g" => "blue"]; $ a3 = mảng ["h" => "red", "b" => "màu xanh lá cây", "g" => "màu xanh"];the keys and values of two [or more] arrays, and returns the differences.
Hàm này so sánh các khóa và giá trị của hai mảng [hoặc nhiều] và trả về một mảng chứa các mục từ Array1 không có trong Array2 hoặc Array3, v.v.
Cú pháp
Array_Diff_assoc [Array1, Array2, Array3 ...]
Giá trị tham số
mảng1 | Yêu cầu. Mảng để so sánh từ |
mảng2 | Yêu cầu. Một mảng để so sánh với |
Array3, ... | Không bắt buộc. Nhiều mảng hơn để so sánh với |
Chi tiết kỹ thuật
Trả về một mảng chứa các mục từ Array1 không có trong bất kỳ mảng nào khác |
4.3+ |
Nhiều ví dụ hơn
Thí dụ
So sánh các khóa và giá trị của hai mảng và trả về sự khác biệt: keys and values of two arrays, and return the differences:
"màu đỏ", "b" => "màu xanh lá cây", "c" => "màu xanh", "d" => "màu vàng"]; $ a2 = mảng ["e" => "red", "f" => "màu xanh lá cây", "g" => "blue"];
$a1=array["a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"];
$a2=array["e"=>"red","f"=>"green","g"=>"blue"];
$ result = mảng_diff_assoc [$ a1, $ a2]; print_r [$ result];?>
print_r[$result];
?>
Hãy tự mình thử »
Thí dụ
So sánh các khóa và giá trị của hai mảng và trả về sự khác biệt: keys and values of three arrays, and return the differences:
"màu đỏ", "b" => "màu xanh lá cây", "c" => "màu xanh", "d" => "màu vàng"]; $ a2 = mảng ["e" => "red", "f" => "màu xanh lá cây", "g" => "blue"];
$a1=array["a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"];
$a2=array["a"=>"red","f"=>"green","g"=>"blue"];
$a3=array["h"=>"red","b"=>"green","g"=>"blue"];
$ result = mảng_diff_assoc [$ a1, $ a2]; print_r [$ result];?>
print_r[$result];
?>
Hãy tự mình thử »
So sánh các khóa và giá trị của ba mảng và trả về sự khác biệt: