[英]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.