fork(1) download
  1. <?php
  2.  
  3. $dupArray = array(0 => array(
  4. "Advertencia" => array(
  5. "id" => "",
  6. "tipo_punicao" => "CA",
  7. "suspensao_data_inicio" => "",
  8. "funcionario_matricula" => "",
  9. "advertente_matricula" => "",
  10. "recebedor_RH_matricula" => ""
  11. ),
  12.  
  13. "Funcionario" => array(
  14. "id" => 25,
  15. "matricula" => 5444,
  16. "nome" => "ANDRE",
  17. "quantidade" => "",
  18. )
  19. ),
  20.  
  21. 1 => array(
  22. "Advertencia" => array(
  23. "id" => "",
  24. "tipo_punicao" => "A",
  25. "suspensao_data_inicio" => "",
  26. "funcionario_matricula" => "",
  27. "advertente_matricula" => "",
  28. "recebedor_RH_matricula" => ""
  29. ),
  30.  
  31. "Funcionario" => array(
  32. "id" => 20,
  33. "matricula" => 5555,
  34. "nome" => "JOAO",
  35. "quantidade" => ""
  36. )
  37. ),
  38.  
  39. 2 => array(
  40. "Advertencia" => array(
  41. "id" => "",
  42. "tipo_punicao" => "RC",
  43. "suspensao_data_inicio" => "",
  44. "funcionario_matricula" => "",
  45. "advertente_matricula" => "",
  46. "recebedor_RH_matricula" => ""
  47. ),
  48.  
  49. "Funcionario" => array(
  50. "id" => 20,
  51. "matricula" => 5555,
  52. "nome" => "JOAO",
  53. "quantidade" => ""
  54. )
  55. )
  56. );
  57.  
  58. function in_array_recursive($agulha, $palheiro) {
  59. foreach ($palheiro as $item) {
  60. if (($item == $agulha) || (is_array($item) && in_array_recursive($agulha, $item)))
  61. return true;
  62. }
  63. return false;
  64. }
  65.  
  66. function uniqueArray($raiz){
  67. $unique = [];
  68. foreach ($raiz as $nodo => $nodos){
  69. foreach ($nodos as $item => $items){
  70. foreach ($items as $chave => $valor){
  71. if (!in_array_recursive($valor, $unique) or empty($valor)){
  72. $unique[$nodo][$item][$chave] = $valor;
  73. } else {
  74. unset($unique[$nodo]);
  75. break 3;
  76. }
  77. }
  78. }
  79. }
  80. return $unique;
  81. }
  82.  
  83. $unique = uniqueArray($dupArray);
  84. echo "<pre>". print_r($unique, 1). "<pre>";
  85.  
  86. ?>
Success #stdin #stdout 0.02s 24400KB
stdin
Standard input is empty
stdout
<pre>Array
(
    [0] => Array
        (
            [Advertencia] => Array
                (
                    [id] => 
                    [tipo_punicao] => CA
                    [suspensao_data_inicio] => 
                    [funcionario_matricula] => 
                    [advertente_matricula] => 
                    [recebedor_RH_matricula] => 
                )

            [Funcionario] => Array
                (
                    [id] => 25
                    [matricula] => 5444
                    [nome] => ANDRE
                    [quantidade] => 
                )

        )

    [1] => Array
        (
            [Advertencia] => Array
                (
                    [id] => 
                    [tipo_punicao] => A
                    [suspensao_data_inicio] => 
                    [funcionario_matricula] => 
                    [advertente_matricula] => 
                    [recebedor_RH_matricula] => 
                )

            [Funcionario] => Array
                (
                    [id] => 20
                    [matricula] => 5555
                    [nome] => JOAO
                    [quantidade] => 
                )

        )

)
<pre>