簡體   English   中英

在 2 arrays 中查找匹配和對應的值

[英]finding matching and corresponding values in 2 arrays

我有 2 個 arrays:

第一個總交易數組(干草堆):

[0] => Array (
    [transaction_id] => 62369600431
    [invoice_number] => 37161
    )
[1] => Array (
    [transaction_id] => 62369595048
    [invoice_number] => 37346
    )
[2] => Array (
    [transaction_id] => 62369537530
    [invoice_number] => 38064
    )

第二組 select 訂單(針):

[0] => Array (
    [invoice_number] => 37161
    )
[1] => Array (
    [invoice_number] => 37346
    )

我的目標是創建第三個數組,從第一個數組中找到與第二個數組中的 order_id 匹配的所有 transaction_id。

我試過 array_merge 和 array_intersect 都沒有成功(因為我不完全理解如何使用它們。)

您可以使用 array_filter 並使用示例array_column獲取所有 invoice_numbers 來檢查

然后在過濾器中,使用in_array檢查數字是否出現在 invoice_numbers 中。

$array1 = [
    [
        "transaction_id" => 62369600431,
        "invoice_number" => 37161
    ],
    [
        "transaction_id" => 62369595048,
        "invoice_number" => 37346
    ],
    [
        "transaction_id" => 62369600431,
        "invoice_number" => 38064
    ]
];

$array2 = [
    [
        "invoice_number" => 37161
    ],
    [
        "invoice_number" => 37346
    ]
];

$invoiceNumbers = array_column($array2, "invoice_number");
$result = array_filter($array1, function($x) use ($invoiceNumbers) {
   return in_array($x["invoice_number"], $invoiceNumbers);
});

print_r($result);

Output

Array
(
    [0] => Array
        (
            [transaction_id] => 62369600431
            [invoice_number] => 37161
        )

    [1] => Array
        (
            [transaction_id] => 62369595048
            [invoice_number] => 37346
        )

)

Php 演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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