Foros del Web » Programando para Internet » PHP »

llenar un array

Estas en el tema de llenar un array en el foro de PHP en Foros del Web. Hola tengo dudas para llenar un array con su parametro valor, hasta ahora solo llenaba los array con array_push, pero como se deberia hacer si ...
  #1 (permalink)  
Antiguo 04/12/2013, 04:49
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 12 años, 10 meses
Puntos: 5
llenar un array

Hola tengo dudas para llenar un array con su parametro valor, hasta ahora solo llenaba los array con array_push, pero como se deberia hacer si quiero llenar un array con parameto valor.

$array=array("valor1"=>33,"valor2"=>455);

pero quiero añadirle otro parametro valor, alguna ayuda?
gracias.
  #2 (permalink)  
Antiguo 04/12/2013, 05:03
Avatar de danny_  
Fecha de Ingreso: septiembre-2012
Mensajes: 95
Antigüedad: 11 años, 6 meses
Puntos: 4
Respuesta: llenar un array

Ummm.. aglo asiN quizás...

Código PHP:
Ver original
  1. <?php
  2. $array=array();
  3.  
  4. for($i=0;$i<10;$i++){
  5.     $array['indice'.$i]='valor'.$i;
  6. }
  7.  
  8. echo print_r($array).'<br/>';
  9. echo $array['indice2'];
  10. ?>
__________________
http://www.danielcarvajal.es
  #3 (permalink)  
Antiguo 04/12/2013, 05:11
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 2 meses
Puntos: 206
Respuesta: llenar un array

$array["valor1547"]=10;
  #4 (permalink)  
Antiguo 04/12/2013, 05:17
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 12 años, 10 meses
Puntos: 5
Respuesta: llenar un array

gracias era eso exactamente lo que buscaba, pero ya que estoy aqui tengo otra duda partiendo del array de antes pero con algunos parametros mas con su valor a 0, si quiero ordenarlos segun su valor con arsort, funciiona bien pero tambien me ordena los parametros que tiene 0 como valor.

Lo que necesito es que me los deje tal y como estan los parametros que tienen un valor 0 o si por ejemplos hay dos iguales que el orden de estos dos no me los cambie, esto es posible?

ejemplo
Código PHP:
Ver original
  1. $array=array("valor1"=>33,"valor2"=>455,"avalor3"=>0,"valor4"=>0);
  2. arsort($array);
  3. print_r($array);

el orden seria
valor2
valor1
valor4
valor3

y lo que quiero es que el valor 3 no me lo cambie de posicion?
saludos.
  #5 (permalink)  
Antiguo 04/12/2013, 05:27
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 2 meses
Puntos: 206
Respuesta: llenar un array

Sácalos del array, ordénalo, vuelve a meterlos en el array.
  #6 (permalink)  
Antiguo 04/12/2013, 05:27
Avatar de danny_  
Fecha de Ingreso: septiembre-2012
Mensajes: 95
Antigüedad: 11 años, 6 meses
Puntos: 4
Respuesta: llenar un array

Hola roboty, creo que lo conveniente será que eches un vistazo al manual de php y te informes sobre manipulación de arrays. Al principio cuesta saber entender el flujo de los bucles y tipos de arrays y métodos para manipularlos, pero si no buscas y lo intentas por tu cuenta no aprenderás nunca. Es un consejo que te doy y no soy un programador senior, apenas estoy aprendiendo y sé que al principio entender la manipulación de arrays es un tanto compleja pero si los estudias seguro que podrás conseguir buenos resultados! Animo!!
__________________
http://www.danielcarvajal.es
  #7 (permalink)  
Antiguo 04/12/2013, 05:46
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 12 años, 10 meses
Puntos: 5
Respuesta: llenar un array

Gracias danny pero esque ya estube mirando las funciones de array y no consigo hacer lo que quiero.
marlanga, no entiendo muy bien como quieres que lo haga, alguna ayuda?
saludos.
  #8 (permalink)  
Antiguo 04/12/2013, 06:03
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 2 meses
Puntos: 206
Respuesta: llenar un array

Usa el consejo de danny para hacerlo; si estás esperando a una revelación divina mirando el código, no lo vas a conseguir, porque dios no existe, o si existe está muy ocupado extendiendo epidemias de malaria entre los habitantes pobres de áfrica.
  #9 (permalink)  
Antiguo 04/12/2013, 06:07
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 12 años, 10 meses
Puntos: 5
Respuesta: llenar un array

hola, lo que dice danny ya lo hice, solo se me ocurre algo como desglosar el array con un foreach por ejemplo y volverlo a montar comparando su valor osea para insertarlo al final del array o al principio, pero sigo teniendo dudas creo que esto no se hace asin, porque las funciones array_push y array_unshift no se usan para este tipo de arrays.

una vez desmontado el array como puedo ordenarlo, esa es mi duda que no logro solucionar.
saludos.
  #10 (permalink)  
Antiguo 04/12/2013, 06:11
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 2 meses
Puntos: 206
Respuesta: llenar un array

Móntalo usando sólo los keys con valores que no sean cero. Ordénalo. Añádele los keys que dejaste fuera, los que tienen ceros.
  #11 (permalink)  
Antiguo 04/12/2013, 06:24
 
Fecha de Ingreso: abril-2011
Mensajes: 867
Antigüedad: 12 años, 10 meses
Puntos: 5
Respuesta: llenar un array

Bueno al final con mi torpeza pero con vuestra ayuda consegui crearlo, pero muestro como lo hice por si se puede mejorar, un saludo y mil gracias.

Código PHP:
Ver original
  1. $array_ordenado=array();
  2. $array_cero=array();
  3. $array=array("valor1"=>33,"valor2"=>455,"avalor3"=>0,"valor4"=>0);
  4. foreach($array as $key=>$value){
  5.     if($value==0){
  6.        $array_cero[$key]=$value;
  7.     }else{
  8.         $array_ordenado[$key]=$value;
  9.     }
  10. }
  11.  
  12. arsort($array_ordenado);
  13. $array=array_merge($array_ordenado,$array_cero);
  14. print_r($array);

Última edición por roboty; 04/12/2013 a las 06:42
  #12 (permalink)  
Antiguo 04/12/2013, 07:43
Avatar de danny_  
Fecha de Ingreso: septiembre-2012
Mensajes: 95
Antigüedad: 11 años, 6 meses
Puntos: 4
Respuesta: llenar un array

Perfecto!! para que más??
__________________
http://www.danielcarvajal.es

Etiquetas: Ninguno
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 19:37.