簡體   English   中英

計算PHP數組的算術元素?

[英]calculate the arithmetic elements of php array?

這是我的數組

$arr = array(1,2,3,4,5);

如何獲得計算此表達式((((1-2) -3)-4)-5)

第一次輸入減去總和的2倍-看上去很快。

echo (2 * reset($arr)) - array_sum($arr);

只需減去第一個元素中除第一個元素外的所有元素的總和:

echo array_shift($arr) - array_sum($arr); # -13

要保留數組,請稍微更改計算:

echo $arr[0]*2 - array_sum($arr);  # -13

我們很高興您沒有要求eval

echo eval('return '.implode('-', $arr).';'); # -13

但是,我能給出的最好建議是將邏輯封裝到一個類中,並用它重載數組。 這樣該對象就可以提供一種計算方法( Demo ):

class Operands extends ArrayObject
{
    public function operate($sign)
    {
        $sign = max(-1, min(1, $sign.'1'));
        $arr = $this->getArrayCopy ();
        return $arr[0]*(1-$sign) + $sign*array_sum($arr);
    }
    public function __invoke($sign) {
        return $this->operate($sign);
    }
}

$arr = new Operands($arr);

echo $arr('-'), ', ' , $arr('+');
<?php echo eval(implode("-", $arr)); ?>

嘗試這個:

$arr = array(1,2,3,4,5);
// load the first number to subtract
$result = $arr[0];
$i = 1;
foreach($arr as $item)
{
    if ($i !=1) // skip the first one
        $result -= $item;
    $i++;
}
echo $result;

?>

這個?

<?php
foreach ($arr as $val)
{
   $calc -= $val;
}

echo $calc;
?>

類似於@mOrSa,但更具可讀性:

<?php
$arr = array(1, 2, 3, 4, 5);

// load the first number to subtract
$result = $arr[0];

for ($i = 1; $i < count($arr); $i++)
{        
    $result -= $arr[i];
}
echo $result;    
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM