2018-03-19

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

參考資料 ----
array_splice


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

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


  1.  
  2. // 原陣列
  3. $rs = array(array("name" => "johnber", "money" => 100),
  4. array("name" => "ann", "money" => 10),
  5. array("name" => "catherine", "money" => 50),
  6. array("name" => "andrew", "money" => 300)
  7. );
  8. print_r($rs);
  9. echo '<br /><br />';
  10.  
  11. $nowpos = 1;
  12. $submoney = 0;
  13. $totalmoney = 0;
  14.  
  15. foreach($rs as $key => $val)
  16. {
  17. $submoney += $val['money'];
  18. $totalmoney += $val['money'];
  19. if($val['name']=='ann')
  20. { // 當遇到 name= ann 的陣列元素時, 插入新的陣列元素
  21. $insert = array(array("name" => "subtotal", "money" => $submoney));
  22. array_splice($rs, $nowpos, 0, $insert);
  23. $submoney = 0;
  24. }
  25. $nowpos++;
  26. }
  27. array_push($rs, array("name" => "total", "money" => $totalmoney));
  28. print_r($rs);
  29.  
  30. echo '<br /><br />';
  31. echo 'submoney = '.$submoney.'<br /><br />';
  32. echo 'totalmoney = '.$totalmoney.'<br /><br />';
  33.