【发布时间】:2022-10-18 05:19:50
【问题描述】:
我有嵌套数组 ot 事务。一笔交易包含以下元素:0=TransId、1=ClientId、2=TransactionType、4=Quantity:
$transactions = [
[1,'CLIENT1','BUY',45.12],
[7,'CLIENT2','BUY',25.15],
[11,'CLIENT3','SELL',784.25],
[14,'CLIENT1','SELL',7.04],
[19,'CLIENT1','BUY',21.12],
[21,'CLIENT2','SELL',14.12],
[27,'CLIENT3','BUY',15.27]
];
我有另一个数组,它代表 VIP 客户的 ID:
$vipClients = ['CLIENT2','CLIENT3'];
我可以通过 foreach 循环计算包含 VIP 客户端事务的数组:
$vipTransactions = [];
foreach ($transactions as $transaction) {
if (in_array($transaction[1], $vipClients)) {
array_push($vipTransactions, $transaction);
}
}
var_dump($vipTransactions);
我更喜欢使用 php 数组函数而不是 foreach 循环。你能建议我,如何过滤嵌套数组和嵌套段的值,它们将被其他数组中的现有值过滤吗?我只想使用数组函数,而不是循环。
【问题讨论】:
-
你有没有看过
array_filter()? -
这是我的第一个想法。但是在
array_filter()的回调函数中,我需要使用2 个参数:-第一个-$transactions数组的元素和-第二个-数组$vipTransactions。我不知道,如何将第二个参数传递给回调函数。
标签: php arrays function foreach