Advertisement
Guest User

Untitled

a guest
Mar 12th, 2019
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.92 KB | None | 0 0
  1. <?php
  2.  
  3. function imprime($array) {
  4. $tam = count($array);
  5. foreach ($array as $i => $value) {
  6. if (is_array($array[$i]))
  7. imprime($array[$i]);
  8. else {
  9. if ($i < ($tam - 1))
  10. echo "$i => $array[$i], ";
  11. else
  12. echo "$i => $array[$i]";
  13. }
  14. }
  15. echo "<br>";
  16. }
  17.  
  18. function pega($a, $d) {
  19. foreach ($a as $i => $value) {
  20. if (strcmp($d, $i) == 0) {
  21. return $a[$i];
  22. } else if (is_array($a[$i])) {
  23. return pega($a[$i], $d);
  24. }
  25. }
  26. }
  27.  
  28. function confere($a1, $a2, $d) {
  29. $aux1 = pega($a1, $d);
  30. $aux2 = pega($a2, $d);
  31. if (strcmp($aux1, $aux2) > 0)
  32. return 1;
  33. else
  34. return 0;
  35. }
  36.  
  37. function ordena(&$array, $dado) {
  38. $vet = explode('.', $dado);
  39. $tam = count($vet);
  40. $string = $vet[$tam - 1];
  41. foreach ($array as $i => $value) {
  42. foreach ($array as $j => $value) {
  43. if (is_array($array[$i]) && is_array($array[$j])) {
  44. if (confere($array[$i], $array[$j], $string) == 0) {
  45. $aux = $array[$i];
  46. $array[$i] = $array[$j];
  47. $array[$j] = $aux;
  48. }
  49. }
  50. }
  51. }
  52. }
  53.  
  54. $carros = array(
  55. 0 => array(
  56. 'Carro' => array(
  57. 'marca' => 'Volks',
  58. 'modelo' => 'Polo',
  59. 'ano' => '2004',
  60. 'Pessoa' => array(
  61. 'nome' => 'Pedro',
  62. 'idade' => '22',
  63. 'sexo' => 'm',
  64. 'Contato' => array(
  65. 'email' => 'psouza@array.com.br',
  66. 'tel' => '(21) 2222-3333',
  67. )
  68. )
  69. )
  70. ),
  71. 1 => array(
  72. 'Carro' => array(
  73. 'marca' => 'Volks',
  74. 'modelo' => 'Gol',
  75. 'ano' => '2001',
  76. 'Pessoa' => array(
  77. 'nome' => 'Lucas',
  78. 'idade' => '25',
  79. 'sexo' => 'm',
  80. 'Contato' => array(
  81. 'email' => 'lalvarenga@array.com.br',
  82. 'tel' => '(21) 5555-0000',
  83. )
  84. )
  85. )
  86. ),
  87. 2 => array(
  88. 'Carro' => array(
  89. 'marca' => 'Fiat',
  90. 'modelo' => 'Brava',
  91. 'ano' => '2010',
  92. 'Pessoa' => array(
  93. 'nome' => 'Alcides',
  94. 'idade' => '20',
  95. 'sexo' => 'm',
  96. 'Contato' => array(
  97. 'email' => 'alcinho@bol.com.br',
  98. 'tel' => '(21) 6969-2424',
  99. )
  100. )
  101. )
  102. ),
  103. 3 => array(
  104. 'Carro' => array(
  105. 'marca' => 'Peugeot',
  106. 'modelo' => '206',
  107. 'ano' => '2002',
  108. 'Pessoa' => array(
  109. 'nome' => 'Gigio',
  110. 'idade' => '22',
  111. 'sexo' => 'm',
  112. 'Contato' => array(
  113. 'email' => 'gigio.coder@gmail.com',
  114. 'tel' => '(21) 9946-9505',
  115. )
  116. )
  117. )
  118. ),
  119. 4 => array(
  120. 'Carro' => array(
  121. 'marca' => 'Volks',
  122. 'modelo' => 'Fusca',
  123. 'ano' => '1968',
  124. 'Pessoa' => array(
  125. 'nome' => 'Francisca',
  126. 'idade' => '37',
  127. 'sexo' => 'f',
  128. 'Contato' => array(
  129. 'email' => 'fran_linda_rj@uol.com.br',
  130. 'tel' => '(21) 8787-7787',
  131. )
  132. )
  133. )
  134. )
  135. );
  136. echo "<br>---------------------------------------------------------<br>original:<br>";
  137. echo imprime($carros);
  138.  
  139. ordena($carros, 'Carro.marca');
  140. echo "<br>---------------------------------------------------------<br>marca:<br>";
  141. echo imprime($carros);
  142. ordena($carros, 'Carro.Pessoa.nome');
  143. echo "<br>---------------------------------------------------------<br>Pessoa:<br>";
  144. echo imprime($carros);
  145. ordena($carros, 'Carro.Pessoa.Contato.email');
  146. echo "<br>---------------------------------------------------------<br>E-mail:<br>";
  147. echo imprime($carros);
  148.  
  149. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement