从数组中删除PHP对象

3

我正在尝试在foreach循环中从数组中删除一个Article对象,但是我遇到了错误“致命错误:无法使用类型为Article的对象作为数组”。

foreach ($articles as $i => $article) {
    foreach ($categorys as $category) {

        if (checkCategory($category,$article)) {
            unset($article[$i]);
        }
    }
    if ($userName != Null) {
        if ($article->getUserName() != $userName) {
            unset($article[$i]);
        }
    }
    if ($keyWords != Null) {
        if (!containsKeyWords($keyWords, $article)) {
            unset($article[$i]);
        }
    }
}

你能展示一下你的对象长什么样子吗?还有一些值吗? - Alive to die - Anant
5
你有一个简单的错别字...应该使用unset($articles[$i]) - ehymel
分类数组从哪里来? - Rotimi
3个回答

2

您需要从$articles数组(主或父数组)中取消设置。请按照以下方式执行:

unset($articles[$i])

0

这个错误提示我一些线索,你的 $article 可能不是一个数组,而是一个 stdClass 对象,你可以使用 var_dump 来检查它的类型。

你可以使用 unset($article->{$i}) 或者 unset($article->somekey) 来取消对象。

希望能有所帮助。


0

$article 是对象类型,您正在尝试通过数组类型访问它。

尝试使用 var_dump() 检查它的类型,然后相应地使用 unset

对于数组类型: unset($article[$i])
对于对象类型: unset($article->{$i}) 其中 $i 是键。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接