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は残りますが、他の2つは削除されます...

誰か助けてもらえますか?

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 に答える