我有2组数组。第一个数组输出类别和数量,第二个数组输出类别和价格。
array:2 [
0 => array:1 [
"Adult " => " 2"
]
1 => array:1 [
" Senior " => " 1"
]
]
array:3 [
0 => array:6 [
"id" => 1
"variant_id" => 1
"variant_dtl_name" => "Adult"
"variant_dtl_price" => 25.0
]
1 => array:6 [
"id" => 2
"variant_id" => 1
"variant_dtl_name" => "Senior"
"variant_dtl_price" => 15.0
]
2 => array:6 [
"id" => 3
"variant_id" => 1
"variant_dtl_name" => "Children"
"variant_dtl_price" => 8.0
]
]
如何交叉匹配这两个数组以获得总价?例如:Adult x 2
将输出价格50
,Senior x 1
将输出15
,总计将输出65
。谢谢!
答案 0 :(得分:4)
试一试。应该管用。
我想您了解4g
和$secondArray
是什么。
让我知道输出。
$thirdArray
答案 1 :(得分:1)
为了降低成本,首先要使$price_scale
包含类别价格。
然后将第一个数组中的数字相乘以计算类别价格。
假设第一个数组的名称为$array1
和第二个$array2
。
$price_scale = [];
foreach ($array2 as $arr)
{
$price_scale[trim($arr['variant_dtl_name'])] = $arr['variant_dtl_price'];
}
$count = [];
foreach ($array1 as $arr)
{
$key = key($arr); $name = trim($key);
$count[$name] = $price_scale[$name] * $arr[$key];
}
print_r($count);
要获得总和,只需再增加一行
$sum = array_sum($count);
这个foreach将迭代
(t1 + t2)次
t1 = $ array1中的数组数量
t2 = $ array2中的数组数