Ayuda en PHP con array asociativo

aioros.02

Bovino maduro
#1
que tal compañeros, recurro a ustedes debido a una duda un tanto básica pero a la cual no he encontrado una respuesta clara.
necesito un array asociativo en php
ej.
$arreglo = array("clave" => "valor")
pero que se cree de manera dinámica, todos los ejemplos que he visto los crean de manera estática, lo que yo necesito es crearlo en un ciclo... es decir de manera dinámica... la clave y valor los cargo de una BD.

El codigo que tengo es este:
Tengo dos arreglos indexados $ciudades y otro $codigoPostal lo que quiero es unir estos dos array un uno solo pero que sea asociativo (ambos array tiene el mismo numero de elementos), había hecho esto:

for ($i=1; $i<=count($ciudades); $i++){
$asociativo = array($ciudades[$i] => $codigoPostal[$i]);
}

pero la lógica esta mal por que estoy creando un array cada vez que paso por el ciclo, intente crear el array afuera del ciclo pero de esa manera no puedo utilizar el operador "=>" me marca error

Gracias por su ayuda.
 

aioros.02

Bovino maduro
#3
nean_degor gracias pero el punto es que tengo dos arreglos indexados $ciudades y otro $codigoPostal lo que quiero es unir estos dos array un uno solo pero que sea asociativo (ambos array tiene el mismo numero de elementos), habia hecho esto:

for ($i=1; $i<=count($ciudades); $i++){
$asociativo = array($ciudades[$i] => $codigoPostal[$i]);
}

pero la logica esta mal por que estoy creando un array cada vez que paso por el ciclo, intente crear el array afuera del ciclo pero de esa manera no puedo utilizar el operador "=>" me marca error... alguna sugerencia. Gracias.
 

juandej18

Bovino maduro
#4
Si entendi bien lo que quieres hacer es esto:

for ($i=1; $i<=count($ciudades); $i++){
$asociativo[$ciudades[$i]] = $codigoPostal[$i];
}

Y te crea el array asociativo donde las claves son los nombres de las ciudades y el valor los codigos
 
#5
ahi ve va carnalito la respuesta es sencilla:
tienes que generar un array que tenga el indice de la ciudad

anexo ejemplo completo
$ciudades=array ("uno","dos","tres");
$codigos= array("20","30","40");

for($x=0; $x<sizeof($codigos);$x++)
$nuevo[][$ciudades[$x]]=$codigos[$x];

print_r($nuevo);

despliega
Array ( [0] =>
Array ( [uno] => 20 )
[1] =>
Array ([dos] => 30 )
[2] =>
Array ([tres] => 40 )
)

espero te sea de utilidad
 
#7
yo hubiera hecho algo asi y te hubiera dado el mismo resultado que el amigo de arriba

$ciudades = array(1 => 'uno','dos','tres');
$cp = array(1 => 10,20,30);

for($i = 1; $i <= count($cp); $i++)

echo $ciudades[$i] . '<br>';
 
#8
No entiendo porque se complican tanto, pej. si tienes una bd con dos tablas una que contiene las ciudades y otra los codigos postales puede hacer un inner join a ambas tablas y mandar el resultado a php con las ciudades asociadas a su codigo postal, en php lo imprimes directo sin estar creando matrices asociativas ni nada.

lo siento no lei bien no estan utilizando bases de datos, me disculpo,en ete caso a poyo la dorma de juandej18 que es la mas facil y entendible.
 
Arriba