Tengo esta matriz de objetos ($grow
):
class ArrayObject#48 (1) {
private $storage =>
array(4) {
[0] =>
class stdClass#84 (3) {
public $id =>
string(5) "1"
public $name =>
string(5) "dasdasd"
public $pimba =>
string(2) "kl"
}
[1] =>
class stdClass#46 (3) {
public $id =>
string(5) "2"
public $name =>
string(5) "sadwqq"
public $pimba =>
string(2) "kl"
}
[2] =>
class stdClass#83 (3) {
public $id =>
string(5) "3"
public $name =>
string(5) "bbbbbb"
public $pimba =>
string(2) "kl"
}
[3] =>
class stdClass#43 (3) {
public $id =>
string(5) "3"
public $name =>
string(5) "aaaaaa"
public $pimba =>
string(2) "kl"
}
}
No puedo usar array_map
, siempre devuelve nulo . Creo que es porque private $storage
pero no sé cómo solucionarlo.
array_push($arr, array_map(function($c) {
return $c;
},$grow));
2 respuestas
array_map
espera una matriz como su segundo parámetro. Le está pasando un ArrayObject
a él.
Deberá utilizar iterator_to_array
para convertir ese objeto (que es un iterador, como implementa Traversable
) en una matriz:
array_map(function ($c) {
// ... do stuff with $c
return $c;
}, iterator_to_array($grow))
Nota al margen: debe usar $array[] = $value;
en lugar de array_push($array, $value);
ya que es más práctico y rápido.
Por cierto, no estoy seguro de que quieras ingresar a tu matriz en este caso. Esto agregará una submatriz a su matriz $arr
existente. Dependiendo de lo que intente hacer, array_merge
puede ser lo que está buscando.
Puedes probar de esta manera:
array_push($arr, array_map(function($c) {
return $c;
},$grow->getArrayCopy()));
Puede verificar esto Doc. Espero ayudarte.
Preguntas relacionadas
Nuevas preguntas
php
PHP es un lenguaje de secuencias de comandos interpretado, dinámico, orientado a objetos y ampliamente utilizado, diseñado principalmente para el desarrollo web del lado del servidor. Se utiliza para preguntas sobre el lenguaje PHP.