Yii2对象数组,找到一个

时间:2016-02-19 19:57:38

标签: php arrays object yii2

我在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不是我需要的那个,或者我用错了方法。 你能帮我么?谢谢!

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情

$filtered = array_filter($ttepk, function($item) {
    return $item instanceof app\models\Model;
});

if (count($filtered) == 1) {
    $id = reset($filtered)->id;
}