簡體   English   中英

如何根據PHP中的匹配值和順序比較兩個數組?

[英]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

https://3v4l.org/OIknS

編輯或只是 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM