2018-03-19

【PHP】陣列元素的插入 / 拼接 / 置換

參考資料 ----
array_splice


array array_splice ( array &$input , int $offset [, int $length = count($input) [, mixed $replacement = array() ]] ) 

當參數 3 為 0 時, 表示不置換原陣列中的任一元素, 而是在參數 2 指定的位置後插入新元素。 


 
// 原陣列
$rs = array(array("name" => "johnber", "money" => 100),
            array("name" => "ann", "money" => 10),
            array("name" => "catherine", "money" => 50),
            array("name" => "andrew", "money" => 300)
          );
print_r($rs);
echo '<br /><br />';

$nowpos = 1;
$submoney = 0;
$totalmoney = 0;

foreach($rs as $key => $val)
{
    $submoney += $val['money'];
    $totalmoney += $val['money'];
    if($val['name']=='ann')
    {   // 當遇到 name= ann 的陣列元素時, 插入新的陣列元素
        $insert = array(array("name" => "subtotal", "money" => $submoney));
        array_splice($rs, $nowpos, 0, $insert);
        $submoney = 0;
    }
    $nowpos++;
}
array_push($rs, array("name" => "total", "money" => $totalmoney));
print_r($rs);

echo '<br /><br />';
echo 'submoney = '.$submoney.'<br /><br />';
echo 'totalmoney = '.$totalmoney.'<br /><br />';