esafwan
¿Cómo puedo imprimir los valores de ruta de archivo y nombre de archivo de cada fila?
Array (
[0] => Array (
[fid] => 14
[list] => 1
[data] => Array (
[alt] =>
Loop a multidimensional array and only print two specific column values per row =>
)
[uid] => 1
[filename] => trucks_10785.jpg
[filepath] => sites/default/files/trucks_10785.jpg
[filemime] => image/jpeg
[filesize] => 143648
[status] => 1
[timestamp] => 1291424171
[nid] => 8
)
[1] => Array (
[fid] => 19
[list] => 1
[data] => Array (
[alt] =>
Loop a multidimensional array and only print two specific column values per row =>
)
[uid] => 1
[filename] => school.jpg
[filepath] => sites/default/files/school.jpg
[filemime] => image/jpeg
[filesize] => 115355
[status] => 1
[timestamp] => 1292029563
[nid] => 8
)
[2] => Array (
[fid] => 20
[list] => 1
[data] => Array (
[alt] =>
Loop a multidimensional array and only print two specific column values per row =>
)
[uid] => 1
[filename] => Life_is_wonderful_by_iNeedChemicalX.jpg
[filepath] => sites/default/files/Life_is_wonderful_by_iNeedChemicalX_0.jpg
[filemime] => image/jpeg
[filesize] => 82580
[status] => 1
[timestamp] => 1292029572
[nid] => 8
)
[3] => Array (
[fid] => 21
[list] => 1
[data] => Array (
[alt] =>
Loop a multidimensional array and only print two specific column values per row =>
)
[uid] => 1
[filename] => school_rural.jpg
[filepath] => sites/default/files/school_rural.jpg
[filemime] => image/jpeg
[filesize] => 375088
[status] => 1
[timestamp] => 1292029582
[nid] => 8
)
)
ish
Usando un foreach
bucle sin clave:
foreach($array as $item) {
echo $item['filename'];
echo $item['filepath'];
// To know what's in $item
echo '<pre>'; var_dump($item);
}
Usando un foreach
bucle con una clave:
foreach($array as $i => $item) {
echo $array[$i]['filename'];
echo $array[$i]['filepath'];
// $array[$i] is same as $item
}
Usando un for
círculo:
for ($i = 0; $i < count($array); $i++) {
echo $array[$i]['filename'];
echo $array[$i]['filepath'];
}
var_dump
es una función realmente útil para obtener una instantánea de una matriz u objeto.
-
También pago
var_export
, que imprime código PHP válido. Puede guardar eso en un archivo, luego escribir el código para recorrerlo allí antes de ponerlo en su código principal.– ben
30 de marzo de 2017 a las 15:39
-
aquí hay un problema con el uso del método de bucle for. ¿Leí en alguna parte que el índice podría no existir?
– Apagar las luces
8 de septiembre de 2017 a las 4:32
-
Si el índice no está definido como
['a', 'b', 'c']
entonces sus valores son 0,1 y 2.– Ish
8 sep 2017 a las 17:57
observar
Para casos más especiales, también podrías usar este:
array_map(function($n) { echo $n['filename']; echo $n['filepath'];}, $array);
O de una manera menos compleja:
function printItem($n){
echo $n['filename'];
echo $n['filepath'];
}
array_map('printItem', $array);
Esto le permitirá manipular los datos de una manera más fácil.
Comenzando simple, sin HTML:
foreach($database as $file) {
echo $file['filename'] . ' at ' . $file['filepath'];
}
Y de lo contrario, puede manipular los campos en el foreach.
Kavinda Harshaná
foreach($array as $item => $values) {
echo $values->filepath;
}
En PHP moderno, la desestructuración de matrices se puede usar para acceder solo a columnas de fila específicas. Para imprimir, la concatenación de cadenas y la interpolación se pueden evitar usando printf()
en lugar de echo
.
foreach ($array as ['filename' => $fn, 'filepath' => $fp]) {
printf("filename: %s, filepath: %s\n", $fn, $fp);
}
Es un mal uso de una función nativa para llamar array_map()
y NO usar su valor de retorno. Si se desea una iteración de estilo funcional, itere con array_walk()
porque su valor de retorno no está diseñado para representar los datos iterados.
array_walk($array, fn($row) =>
printf("filename: %s, filepath: %s\n", $row['filename'], $row['filepath'])
);
jakoubekcz
También puede usar esto sin crear variables adicionales ni copiar los datos en la memoria como lo hace foreach().
while (false !== (list($item, $values) = each($array)))
{
...
}