vacio - recorrer array asociativo php
¿Cómo inicializar una matriz asociativa en un ciclo While? (4)
¿Qué hay de inicializar primero una matriz vacía, que luego se completará con sus datos?
$languageArray = array();
Luego, recorriendo el archivo CVS línea por línea, usando cada fila para poner datos en esa matriz:
$handle = fopen("Languages.csv","r") or die("EPIC FAIL!");
while (($row = fgetcsv($handle, 1000, ",")) !== FALSE) {
// $row[0] is the first column,
// $row[1] is the second one.
$languageArray[$row[0]] = $row[1];
}
No puede declarar una matriz, usando el código dentro de su inicialización: debe actuar en dos pasos.
Ahora estoy haciendo algo simple, voy a leer un archivo CSV, esa columna A contiene un código como "EN", la columna B contiene el nombre específico "inglés", etc., y quiero leerlos en una asociar array
Mi trabajo actual es así:
$handle = fopen("Languages.csv","r") or die("EPIC FAIL!");
$languageArray = array(
while (($row = fgetcsv($handle, 1000, ",")) !== FALSE)
{
$row[0] => $row[1],
}
)
Pero en realidad se queja de mi sintaxis, así que me pregunto si hay una forma de inicializar mi matriz asociada al obtener todas las filas de mi archivo csv, y poner la primera cadena (de la columna A) como clave, la segunda cadena (de la columna B) como el valor?
Gracias.
Hágalo de manera más convencional:
$languageArray = array();
while (($row = fgetcsv($handle, 1000, ",")) !== FALSE)
{
$languageArray[$row[0]] = $row[1];
}
Inicialízalo como vacío primero:
$languageArray = array();
A continuación, colóquelo usando un ciclo while como este:
while (($row = fgetcsv($handle, 1000, ",")) !== FALSE)
{
$languageArray[$row[0]] = $row[1];
}
Las matrices / hash de PHP no tienen un tamaño fijo y, por lo tanto, se pueden modificar de muchas maneras, por lo que incluso si las inicializas como vacías, puedes completarlas como quieras después.
Primero crea la matriz:
$myArray = array();
Luego, para agregar un enlace de clave => valor:
$myArray[$key] = $value;
En tu caso, esto debería ser algo así como (en el ciclo):
$myArray[$row[0]] = $row[1];