我正在返回从ORM中提取的对象数组的json_encode()。它包含许多具有空值的属性。删除这些为空的属性的最巧妙方法是什么?我想我可以遍历这些属性,看看它们是否为空,然后对该属性进行unset(),但是肯定有一种更优雅的方法吗?
试试这个; 它仅适用于简单对象,但如果它来自ORM,则应该足够简单。
// Strips any false-y values $object = (object) array_filter((array) $object);
感谢Gordon昨天对另一个问题的回答,给了我这个主意。
这是由
请注意,这将删除所有具有空值的属性,包括空字符串,错误的布尔值和0,而不仅仅是空值。您可以更改array_filter调用,如果您想保留那些并且仅远程那些完全为空的。
// Strips only null values $object = (object) array_filter((array) $object, function ($val) { return !is_null($val); });