instalar - PHP array_column() no devuelve valores falsos de objeto
php 7 wikipedia (1)
Estoy seguro de que este es el comportamiento esperado para array_column()
:
class myObj {
public $prop;
public function __construct(int $prop) {
$this->prop = $prop;
}
}
$objects = [
new myObj(7),
new myObj(3),
new myObj(8),
new myObj(0),
new myObj(2),
new myObj(6)
];
echo ''<pre>'';
print_r(array_column($objects, ''prop''));
echo ''</pre>'';
Devoluciones:
Array (
[0] => 7
[1] => 3
[2] => 8
[3] => 2
[4] => 6
)
Falta el 0
Tal vez utiliza empty()
internamente ..?
¿Por qué no devolvería valores false
cuando 0
y false
pueden ser valores de propiedad de objeto válidos normales, y array_column()
está destinado a valores devueltos ...?
¿Cuál es el mejor trabajo alrededor?
Ciertamente parece un error, y lo informaría como tal
Puede trabajar alrededor de ella convirtiendo la matriz de objetos en una matriz anidada:
print_r(array_column(json_decode(json_encode($objects), true), ''prop''));