[英]How to compare two array based on matched values and order in PHP?
我有 2 個數組,我想通過匹配的值以及符合條件的總值的順序和計數來比較它們。
$a = [A,B,C,D,E,F,G];
| | |
$b = [B,A,C,D,F,E,G];
在這種情況下,輸出應該是3 。 我怎樣才能以最佳性能實現這一目標?
更新:
我不只是要求匹配的值,值也應該以相同的順序匹配。
Array_diff_assoc 將計算不相同的內容 (4)。
Count 將計算項目的數量 (7)。
7-4 = 3。
echo count($a) - count(array_diff_assoc($a,$b)); // 3
編輯或只是 array_intersect_assoc
echo count(array_intersect_assoc($a,$b)); //3
直到現在我都沒有想到。
假設兩個數組的大小相同,您可以使用一個簡單的循環來完成:
$count = 0;
foreach ($a as $key => $value) {
if ($value === $b[$key]) {
$count++;
}
}
var_dump($count);
如果它們的大小不同,那么您必須檢查該鍵是否也存在於第二個數組中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.