PHP中的多维数组,乘法和加法

cal*_*die 4 php arrays multidimensional-array

我有一个多维数组如下:

Array(
    [0] => Array
        (
            [name] => item 1
            [quantity] => 2
            [price] => 20.00
        )

    [1] => Array
        (
            [name] => item 2
            [quantity] => 1
            [price] => 15.00
        )

    [2] => Array
        (
            [name] => item 3
            [quantity] => 4
            [price] => 2.00
        )

)
Run Code Online (Sandbox Code Playgroud)

我需要所有这些项目的"总计".现在很明显我可以通过以下方式获得这些:

$grand_total = 0;
foreach ($myarray as $item) {
    $grand_total += $item['price'] * $item['quantity'];
}
echo $grand_total;
Run Code Online (Sandbox Code Playgroud)

我的问题是 - 可以使用PHP中的任何数组函数在较少的代码行中完成吗?

msc*_*der 6

没有.你必须定义一个要使用的回调函数array_reduce.这甚至会变得更长,但使代码更好地重用.

编辑:没有写PHP很长一段时间,但这应该这样做:

function sum_total_price_of_items($sum, $item) {
    return $sum + $item['price'] * $item['quantity']
}
echo array_reduce($myarray, "sum_total_price_of_items", 0)
Run Code Online (Sandbox Code Playgroud)