从php数组中获取不同的总和

时间:2011-03-10 10:09:09

标签: php mysql arrays

我有一个这样的数组:

Array
(
    [0] => Array
        (
            [url_id] => 1
            [time_spent] => 41
        )

    [1] => Array
        (
            [url_id] => 2
            [time_spent] => 25
        )
    [2] => Array
        (
            [url_id] => 1
            [time_spent] => 41
        )
)

那么,如何获得time_spent的'distinct'以及time_spent的'sum'。

感谢。

3 个答案:

答案 0 :(得分:2)

您可以尝试:

$result = array_unique($input_array);
var_dump(array_sum($result['time_spent']));

<强>文档:

答案 1 :(得分:2)

试试这个:

$sum = 0;
$timeSpent = array();
foreach($myArray as $element) {
    $timeSpent[] = $element['time_spent'];
    $sum += $element['time_spent'];
}

拥有:

  1. $ sum =&gt;所有time_spent的总和
  2. $ time_spent =&gt;所有花费的时间数组(whitout URL)

答案 2 :(得分:1)

$ts = array_map(function ($a) {return $a['time_spent'];}, $arr);  //get array of time_spent's
$sum = array_sum($ts); //sum
$distinct = array_unique($ts); //distincts

一行代表不同值的总和

$ans = array_sum(array_unique(array_map(function ($a) {return $a['time_spent'];}, $arr)));

http://us3.php.net/manual/en/ref.array.php