Hoy seguimos con PHP, que es donde mejor me muevo.
Y hoy vamos a ver cómo devolver todas las columnas de un array de objetos.
Partimos de la función array_column(), que nos devuelve las columnas de un array.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <?php $people = ( array( 'id' => 1, 'name' => 'Juan', 'age' => 33 ), array( 'id' => 2, 'name' => 'María', 'age' => 21 ), array( 'id' => 3, 'name' => 'Pepe', 'age' => 18 ), array( 'id' => 4, 'name' => 'Rosa', 'age' => 45 ), ); $ages = array_column($people, 'edad'); var_dump($ages); |
El resultado de está función sería:
Array
(
[0] => 33
[1] => 21
[2] => 18
[3] => 45
)
Así tenemos un array con las edades de las personas para poder trabajar con ellas.
Pero que ocurre si tenemos un array de objetos? En PHP 7 array_column() nos permite buscar en un array de objetos, pero en versiones anteriores debemos usar la función array_map().
Tenemos a continuación un array de objetos.
1 2 3 4 5 6 7 | <?php $ages = array_map( function($e) { return is_object($e) ? $e->age : $e['age']; }, $people ); |
Con esta función conseguimos que ya sea un array de arrays o un array de objetos, nos devuelva un array con los valores de estas columnas.
Cómo he dicho antes, con PHP 7 no haría falta y con tan solo array_column() ya nos serviría, pero no siempre se puede pedir un entorno idílico 🙂
Espero que os haya sido útil.
Y recordad! No olvidéis comentar! En vuestro código y en el Blog!