PHP数组比较得到总和

时间:2015-11-17 07:19:37

标签: php arrays

我有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将输出价格50Senior x 1将输出15,总计将输出65。谢谢!

2 个答案:

答案 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中的数组数