objetos - php dictionary
¿Cómo convertir una matriz simple a una matriz asociativa? (4)
Si alguien todavía se está preguntando cómo hacer esto, hay una solución más fácil para esto utilizando la función array_combine .
$array = array(1, 2, 3, 4, 5);
$assoc = array_combine($array,$array);
¿Cuál es la forma más rápida de convertir una matriz simple en una matriz asociativa en PHP para que los valores puedan verificarse en el isset($array[$value])
?
Es decir, la forma más rápida de hacer la siguiente conversión:
$array = array(1, 2, 3, 4, 5);
$assoc = array();
foreach ($array as $i => $value) {
$assoc[$value] = 1;
}
Simplemente usa esta lógica
$var1 = json_encode($arr1, JSON_FORCE_OBJECT);
$var1 = json_decode($var1);
donde $ arr1 es la matriz que se debe convertir en matriz asociativa. Esto se puede lograr con json_encode y json_decode lo mismo
Su código es el equivalente exacto de:
$assoc = array_fill_keys(array(1, 2, 3, 4, 5), 1); // or
$assoc = array_fill_keys(range(1, 5), 1);
array_flip()
, aunque puede funcionar para su propósito, no es lo mismo.
PHP ref: array_fill_keys()
, array_flip()
array_flip()
está haciendo exactamente eso:
array_flip () devuelve una array en orden flip, es decir, las claves de trans se convierten en valores y los valores de trans se convierten en claves.
Tenga en cuenta que los valores de trans deben ser claves válidas, es decir, deben ser integer o string . Se emitirá una advertencia si un valor tiene el tipo incorrecto, y el par clave / valor en cuestión no se volteará .
Si un valor tiene varias apariciones, la última clave se utilizará como sus valores y todas las demás se perderán.
Pero aparte de eso, solo hay un tipo de matriz en PHP. Incluso las matrices numéricas ("simples", como usted lo llama) son asociativas.