Ver Mensaje Individual
  #6 (permalink)  
Antiguo 23/08/2011, 17:41
Avatar de andresdzphp
andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 8 años, 8 meses
Puntos: 793
Respuesta: Unir valores de un Array

Bueno yo sigo jugando con arrays, esta vez ya no encuentra parejas sino que encuentra todos los códigos repetidos (las 10 primeras letras). Agrega al nuevo array el código y el texto del primer resultado y suma sus stock. Lo más curioso es que con menos código hace más que el anterior. Espero que no este haciendo ningún mal con esta práctica de arrays y le sea útil a a alguién.

Código PHP:
Ver original
  1. <?php
  2.  
  3. $codigo[0] = '666666666666X';
  4. $texto[0] = 'Carro';
  5. $stock[0] = 348;
  6.  
  7. $codigo[1] = '12345678910111X';
  8. $texto[1] = 'Balón';
  9. $stock[1] = 245;
  10.  
  11. $codigo[2] = '12345678910111G';
  12. $texto[2] = 'Balón';
  13. $stock[2] = 132;
  14.  
  15. $codigo[3] = '999999999999H';
  16. $texto[3] = 'Ejemplo';
  17. $stock[3] = 99;
  18.  
  19. $codigo[4] = '999999999999C';
  20. $texto[4] = 'Ejemplo';
  21. $stock[4] = 765;
  22.  
  23. $codigo[5] = '222222222222J';
  24. $texto[5] = 'Ejemplo 2';
  25. $stock[5] = 123;
  26.  
  27. $codigo[6] = '222222222222C';
  28. $texto[6] = 'Ejemplo 2';
  29. $stock[6] = 22;
  30.  
  31. $codigo[7] = '222222222222X';
  32. $texto[7] = 'Ejemplo 2';
  33. $stock[7] = 98;
  34.  
  35. $arr = array();
  36. $nc = array();
  37. $nt = array();
  38. $ns = array();
  39. $x = 0;
  40. $sumas = 0;
  41.  
  42. foreach ($codigo as $i => $cod) {
  43.     foreach ($codigo as $i2 => $cod2) {
  44.         if (substr($cod, 0, 10) == substr($cod2, 0, 10) && ! in_array($cod, $arr)) {
  45.             $x++;
  46.             $sumas += $stock[$i2];
  47.             unset($codigo[$i2]);
  48.         }
  49.     }
  50.     if ($x >= 2) {
  51.         $arr[$i] = $cod;
  52.         $nc[] = $cod;
  53.         $nt[] = $texto[$i];
  54.         $ns[] = $sumas;
  55.     } else if ($x == 1) {
  56.         $nc[] = $cod;
  57.         $nt[] = $texto[$i];
  58.         $ns[] = $stock[$i];
  59.     }
  60.     $x = 0;
  61.     $sumas = 0;
  62. }
  63.  
  64. echo '<pre>';
  65. print_r($nc);
  66. print_r($nt);
  67. print_r($ns);
  68. echo '</pre>';
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP