0

すべての[推奨]フィールドの合計を作成したいと思います。どうすればお願いできますか?私はPhpを使用しています。

Array
(
    [0] => Array
        (
            [Id] => 4
            [Suggested] => 1322
            [proximite_r] => 30924.8470655462
        )

    [1] => Array
        (
            [Id] => 7
            [Suggested] => 773
            [proximite_r] => 32229.1036975145
        )
)

ありがとう!

4

5 に答える 5

7

さあ、バディ:array_reduce()上司のように

// PHP >= 5.3
$sum = array_reduce($items, function($sum, $item){
  return $sum += $item['Suggested'];
}, 0);

// PHP 5.2
function _sum($sum, $item){
  return $sum += $item['Suggested'];
}
$sum = array_reduce($items, '_sum', 0);

残念ながら、PHP <= 5.2はクロージャをサポートしていないため、関数を個別に定義する必要があります。

于 2012-12-24T21:16:54.663 に答える
6

あなたはこれを試すことができます:

$Sum = 0;
foreach ($row as $item) {
   $Sum += $item['Suggested']; // or else index
}
echo $Sum;
于 2012-12-24T21:15:11.217 に答える
4
$sum = array_sum(
              array_map(function($item) { return $item["Suggested"]; }, $items)
       );
于 2012-12-24T21:14:59.517 に答える
0

配列を反復処理する別の方法は、forループを使用することです。これが$arrであるとします。

<?php    
function getSumOfKey($arr, $key){
     $sum = 0;
     for ($i = 0; $i < count($arr); $i++){
      (is_numeric($arr[$i][$key]))? $sum += $arr[$i][$key] : continue;
     }
     return $sum;
    } 
?>

それを実装するには:

echo 'The sum is: '.getSumOfKey($arr, 'Suggested');
于 2012-12-25T19:08:25.943 に答える
0

array_columnおそらくPHP5.5で到着する関数を考えると:

function array_column($input, $key) {
    if (is_array($key) || !is_array($input)) return array();
    $array = array();
    foreach($input as $v) {
        if(array_key_exists($key, $v)) $array[]=$v[$key];
    }
    return $array;
}

(ソース:php.net)

あなたはこれを使うことができます:

$sum = array_sum(array_column($items, 'Suggested'));

もちろん、これは大きなやり過ぎであり、これはそれを達成する方法でもあることを指摘したかっただけです。

于 2012-12-24T21:20:23.423 に答える