我在yii2中有一个数组,有时它只有一个非空的单个对象(数组的所有其他元素都是空的)我不知道是哪一个。我怎么能找到一个非空的,或者(我的想法是我的尝试),创建一个新的数组,使用array_filter(但我不确定它是否也适用于对象数组),只有其中的一个对象。
if (count($ttepk) == 1) {
$ttep_filtered[] = array_filter($ttepk);
$id = $ttep_filtered[0]->id;
}
但它也没有用。我收到错误消息:PHP Notice – yii\base\ErrorException Trying to get property of non-object
。
在array_filter之前,它看起来像这样:
Array
(
[3] => app\models\Model Object
(
在array_filter之后:
Array
(
[0] => Array
(
[3] => app\models\Model Object
(
看来,array_filter不是我需要的那个,或者我用错了方法。 你能帮我么?谢谢!
答案 0 :(得分:0)
您可以尝试这样的事情
$filtered = array_filter($ttepk, function($item) {
return $item instanceof app\models\Model;
});
if (count($filtered) == 1) {
$id = reset($filtered)->id;
}