5

我有一系列产品,我需要删除所有参考网络研讨会的产品

我使用的 PHP 版本是 5.2.9

$category->products

例子:

    [6] => stdClass Object
            (
                [pageName] => another_title_webinar
                [title] => Another Webinar Title
            )

        [7] => stdClass Object
            (
                [pageName] => support_webinar
                [title] => Support Webinar
            )
[8] => stdClass Object
            (
                [pageName] => support
                [title] => Support
            )

在这种情况下,数字 8 将被留下,但其他两个将被剥夺......

有人可以帮忙吗?

4

3 回答 3

5

查看array_filter()。假设您运行 PHP 5.3+,这可以解决问题:

$this->categories = array_filter($this->categories, function ($obj) {
    if (stripos($obj->title, 'webinar') !== false) {
        return false;
    }

    return true;
});

对于 PHP 5.2:

function filterCategories($obj)
{
    if (stripos($obj->title, 'webinar') !== false) {
        return false;
    }

    return true;
}

$this->categories = array_filter($this->categories, 'filterCategories');
于 2012-12-17T10:24:40.240 回答
3

你可以试试

$category->products = array_filter($category->products, function ($v) {
    return stripos($v->title, "webinar") === false;
});

简单的在线演示

于 2012-12-17T10:25:45.993 回答
1

您可以使用 array_filter 方法。http://php.net/manual/en/function.array-filter.php

function stripWebinar($el) {
  return (substr_count($el->title, 'Webinar')!=0);
}

array_filter($category->products, "stripWebinar")
于 2012-12-17T10:25:37.723 回答