Comunidad de diseño web y desarrollo en internet online

Como puedo recorrer este array?

Citar            
MensajeEscrito el 05 Mar 2012 06:52 pm
tengo el siguiente array

Array
(
[0] => Array
(
[id] => 1
[nombre] => Pedro
)

[1] => Array
(
[id] => 2
[nombre] => Juan
)

)

Necesito crear un select con el id y el valor obiamente, puedo sacar el valor indice pero no se como separar el id de su valor para crear e select... alguna idea??

seria algo como

<option value="1">pedro</select>

gracias

Por logoys

Claber

104 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Mar 2012 11:10 pm
en mi opinion es trivial el id.. pero depende para lo que lo uses.. ya que en tu array hay 2 id.

<option value="<?php echo $array['id']; "?>"><?php echo $array['nombre'];?></option>

Por nax_hh

Claber

168 de clabLevel

1 tutorial

 

Reus

chrome
Citar            
MensajeEscrito el 06 Mar 2012 01:24 am
bueno, el array es dinamico necesito hacer tantas opciones como tenga el array... como recorro el array?... es decir la forma que expones (<?php echo $array['id']; "?>) es a lo que quiero llegar pero recorriendolo...

Por logoys

Claber

104 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Mar 2012 09:18 am
Ok perdona xD me dejé el bucle :\

<?php
foreach ($arrays as $array) {
//aqui va lo del option
}
?>

Por nax_hh

Claber

168 de clabLevel

1 tutorial

 

Reus

chrome
Citar            
MensajeEscrito el 07 Mar 2012 07:17 pm
Mi amigo, creo que no tiene ni idea de lo que me acaba de decir...

teniendo el array:

Código PHP :

Array
(
[0] => Array
(
[id] => 1
[nombre] => Pedro
)

[1] => Array
(
[id] => 2
[nombre] => Juan
)

) 


y al recorrerlo con foreach tal y como dices:

Código PHP :

foreach($array as $a){
    echo $array['id'];
}


obtienes algo asi:

Código PHP :

Notice: Undefined index: id


si pusieras algo asi:

Código PHP :

foreach($array as $a){
    echo $array;
}


obtendrias:

Código PHP :

ArrayArray


asi que la solución que expones no es para nada lógica, por tanto la manera en la que "solucioné" ese problema fue de la siguiente manera:

Código PHP :

  public function addAction($data,$table)
    {
        $fields = array();
        $values = array();
        foreach($data as $field => $value){
            $fields[] = $field;
            $values[] = $value;
        }
        //Busco el numero del animal dentro del array de valores
        $find = array_search($values[0], $values);
        /*
         * Reemplazo el numero del animal por su ID
         * array_splice remueve un valor y lo reemplaza por otro
         */
        array_splice($values,$find,1,$this->_animal->getAnimalId($values[0]));
        //Combino los array para crear uno solo
        $newArray = array_combine($fields,$values);        
        //Inserto los datos en la DB
        $this->insert($newArray, $table);
    }

$instancia->addAction($instancia->addValue($array, 'med_id', $instancia->lastId()),'tratamientos');


Lo malo aqui es que la propiedad "id,nombre" tengo que separarla y en algun momento podria poner "nombre,id" y ahora los valores serian el nombre y los valores serian los id, asi que seria mas sencillo separar las propiedades como $id, $value (nombre) y asi trabajar de manera independiente sin usar explode();

Gracias y ojalá a alguien le ayude...

Por logoys

Claber

104 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Mar 2012 08:24 pm
Pues... porque no le veas el sentido no quiere decir que no lo tenga...

compara tu bucle con el mio otra vez...


foreach($array as $a){
echo $array['id'];
}

y el mio es

foreach($arrays as $array) {

}

por lo que echo ·$array['id'] estaría definido...

siguiendo tu bucle, para que no te de error tendrías que hacer

echo $a['id'] y no $array['id']


es más... si quieres guardar el id que tienes en el array y asignarle el nombre es tan fácil como

$vars = array();
foreach($array as $a) {
$vars[$a['id']] = $a['nombre'];
}

porque no hayas entendido el code y lo hayas aplicado mal no significa que no funcione

Por nax_hh

Claber

168 de clabLevel

1 tutorial

 

Reus

chrome
Citar            
MensajeEscrito el 09 Mar 2012 04:54 pm
para versiones php5.3 en adelante al estilo de Javascript

Código PHP :

array_walk($arrays,function($array){
    echo $array['id'];
});

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.