fork(5) download
  1. <?php
  2.  
  3. $original = array(
  4. "pei_seq" => "0",
  5. "prg_cod_barra" => "7899619704729" ,
  6. "pei_prg_cod" => "483",
  7. "pei_valor" => "42.00" ,
  8. "pei_quantidade" => "1"
  9. ),
  10. "pei_seq" => "0",
  11. "prg_cod_barra" => "7899619704729" ,
  12. "pei_prg_cod" => "483",
  13. "pei_valor" => "42.00" ,
  14. "pei_quantidade" => "1"
  15. ),
  16. "pei_seq" => "0",
  17. "prg_cod_barra" => "7899619704729" ,
  18. "pei_prg_cod" => "483",
  19. "pei_valor" => "42.00" ,
  20. "pei_quantidade" => "1"
  21. ),
  22. "pei_seq" => "0",
  23. "prg_cod_barra" => "7899619704729" ,
  24. "pei_prg_cod" => "483",
  25. "pei_valor" => "42.00" ,
  26. "pei_quantidade" => "1"
  27. )
  28. );
  29.  
  30. $nova = [];
  31. foreach ($original as $arr) { // itera a array original
  32. $prg_cod_barra = $arr['prg_cod_barra'];
  33. $existe = false;
  34.  
  35. foreach ($nova as &$subArr) { // iterar a array nova à procura de igual
  36. // se houver igualdade
  37. if ($prg_cod_barra == $subArr['prg_cod_barra']){
  38. $valorAntigo = intval($subArr['pei_quantidade'], 10);
  39. $novoValor = intval($arr['pei_quantidade'], 10);
  40. $existe = strval($valorAntigo + $novoValor); // inserir o novo numero
  41. $subArr['pei_quantidade'] = $existe;
  42. }
  43. }
  44. if (!$existe) $nova[] = $arr;
  45. }
  46.  
  47. var_dump($nova);
Success #stdin #stdout 0.02s 24400KB
stdin
Standard input is empty
stdout
array(1) {
  [0]=>
  &array(5) {
    ["pei_seq"]=>
    string(1) "0"
    ["prg_cod_barra"]=>
    string(13) "7899619704729"
    ["pei_prg_cod"]=>
    string(3) "483"
    ["pei_valor"]=>
    string(5) "42.00"
    ["pei_quantidade"]=>
    string(1) "4"
  }
}