Foros del Web » Programando para Internet » PHP »

Duda con Arrays

Estas en el tema de Duda con Arrays en el foro de PHP en Foros del Web. Tengo una duda: Parto de 3 arrays de las mismas dimensiones. Es un array de numeros enteros. Quiero construir un array que por columnas me ...
  #1 (permalink)  
Antiguo 25/06/2009, 01:37
 
Fecha de Ingreso: agosto-2007
Mensajes: 248
Antigüedad: 16 años, 8 meses
Puntos: 1
De acuerdo Duda con Arrays

Tengo una duda: Parto de 3 arrays de las mismas dimensiones. Es un array de numeros enteros. Quiero construir un array que por columnas me diga el numero total de "0's" que tengo.

Ejemplo

array1 (7 ,3 ,2 , 1, 0)

array2 (1 ,1 , 1, 0, 0)

array3 (2 ,4 , 0, 0, 0)

----------------------------------
array_final (0, 0, 1, 2, 3)
----------------------------------

En la primera columna tengo: 0 ceros
En la primera columna tengo: 0 ceros
En la primera columna tengo: 1 cero
En la primera columna tengo: 2 ceros
En la primera columna tengo: 3 ceros

Teneis alguna idea de como puedo implementar esta situación ???

Muchas Gracias ¡¡¡
  #2 (permalink)  
Antiguo 25/06/2009, 02:11
Avatar de amanbur  
Fecha de Ingreso: noviembre-2006
Ubicación: Valencia
Mensajes: 129
Antigüedad: 17 años, 5 meses
Puntos: 1
Respuesta: Duda con Arrays

incializar array_final a ceros

desde i = 1 hasta array.tamaño
si array1[i] == 0
array_final[i]++
fin si
si array2[i] == 0
array_final[i]++
fin si
si array3[i] == 0
array_final[i]++
fin si

siguiente


Creo que así lo haría
  #3 (permalink)  
Antiguo 25/06/2009, 07:40
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Duda con Arrays

Bueno puedes hacerlo así. Debe haber una mejor forma pero, mientras tanto

Código PHP:
$array[] = array(73210);
$array[] = array(11100);
$array[] = array(24000);

$count1 0;
$count2 0;
$count3 0;
$count4 0;
$count5 0;
foreach(
$array as $k => $v){
    foreach(
$v as $kk => $vv){
        if(
$kk == $vv == 0){
            
$count1++;
        }
        if(
$kk == $vv == 0){
            
$count2++;
        }
        if(
$kk == $vv == 0){
            
$count3++;
        }
        if(
$kk == $vv == 0){
            
$count4++;
        }
        if(
$kk == $vv == 0){
            
$count5++;
        }
    }
}

$arrayFinal = array($count1,$count2,$count3,$count4,$count5);

echo 
"<pre>";
print_r($arrayFinal);
echo 
"</pre>"
  #4 (permalink)  
Antiguo 25/06/2009, 13:11
 
Fecha de Ingreso: agosto-2007
Mensajes: 248
Antigüedad: 16 años, 8 meses
Puntos: 1
De acuerdo Respuesta: Duda con Arrays

¿No existe una función predefinida en PHP que permita implementar esto?

Muchas Gracias ¡¡¡
  #5 (permalink)  
Antiguo 25/06/2009, 13:25
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Duda con Arrays

Cita:
Iniciado por superdober Ver Mensaje
¿No existe una función predefinida en PHP que permita implementar esto?

Muchas Gracias ¡¡¡
No, creo que vas a tener que implementarlo.

Saludos!
  #6 (permalink)  
Antiguo 25/06/2009, 13:44
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Duda con Arrays

Otra forma podría ser así:
Código PHP:
Ver original
  1. $array[] = array(7, 3, 2, 1, 0);
  2. $array[] = array(1, 1, 1, 0, 0);
  3. $array[] = array(2, 4, 0, 0, 0);
  4.  
  5. $result = array(0, 0, 0, 0, 0);
  6.  
  7. foreach ($array as $value) {
  8.     $find = array_keys($value, 0, true);
  9.     foreach ($find as $sum) {
  10.         $result[$sum]++;
  11.     }
  12. }
  13.  
  14. echo "<pre>";
  15. print_r($result);
  16. echo "</pre>";
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 25/06/2009, 14:14
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Duda con Arrays

me gusto mas la de David Como dije puede haber una mejor ;)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:45.