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