Estoy usando php-ml y tomando un archivo .csv con 6 columnas y miles de líneas, quiero que cada quinto elemento (columna) de cada matriz se guarde en $muestras. He intentado lo siguiente que me da el primer elemento de cada matriz.
$dataset = new CsvDataset('myCsvFile.csv', 1); $samples = []; foreach ($dataset->getSamples() as $sample) { $samples[] = $sample[0]; } Sin embargo, esto me da el primer elemento de cada matriz, si cambio $sample[0] to $sample[4] como pensé sintácticamente esto funcionaría, obtendría un desplazamiento indefinido en la línea en cuestión. Soy nuevo en PHP y no entiendo por qué sucedería esto.
Si el código se deja como arriba y se imprime, se ve así:
Array ( [0] => 1157 [1] => 1157 [2] => 1157 [3] => 1157 [4] => 1157 [5] => 1157 [6] => 1157 [7] => 1157 [8] => 1157...y así.
Puedes probar esto
$csv = array(); $csvNewArray = array(); $lines = file('myCsvFile.csv', FILE_IGNORE_NEW_LINES); foreach ($lines as $key => $value) { $csv[$key] = str_getcsv($value); if(isset($csv[$key][4])){ $csvNewArray[$key] = $csv[$key][4]; } }Use fgetcsv() para leer el archivo, luego acceda al elemento apropiado de estas matrices para obtener el quinto elemento de cada fila.
$fh = fopen("myCsvFile.csv", "r") or die("Can't open CSV file\n"); $csv = array(); $sample = array(); while ($row = fgetcsv($fh)) { $csv[] = $row; $sample[] = $row[4]; } fclose($fh);