【问题标题】:How to filter array values from another arrays values and return new array?如何从另一个数组值中过滤数组值并返回新数组?
【发布时间】:2011-11-06 15:43:01
【问题描述】:

我有两个数组:$all_languages$taken_languages。一种包含所有语言(如 200 种之类的),但第二种 - 之前已选择的语言(从 0 到 200)。

我需要从 $all_languages 中删除所有已采用的语言 ($taken_languages) 并返回新数组 - $available_languages

我的解决方案是两个循环,但是,首先,它不能按预期工作,其次 - 它“不酷”,我相信有更好的解决方案!你能指出正确的路径吗?

这是我以前做过的,但是,正如我所说,它没有按预期工作......

if (!empty($taken_languages)) {

    foreach ($all_languages as $language) {

        foreach ($taken_languages as $taken_language) {

            if ($taken_language != $language) {

                $available_languages[] = $language;

                break;

            }

        }

    }

} else {

    $available_languages = $all_languages;

}

感谢您的建议!

【问题讨论】:

    标签: php arrays loops filter array-filter


    【解决方案1】:

    array_diff 函数将为您工作。 http://php.net/manual/en/function.array-diff.php

    【讨论】:

      【解决方案2】:

      PHP 对此有一个内置函数(以及其他所有内容:P)

      $available_languages = array_diff($all_languages, $taken_languages);
      

      PHP Manual (array_diff)

      【讨论】:

        猜你喜欢
        • 2022-06-22
        • 2018-08-27
        • 1970-01-01
        • 2021-08-12
        • 2017-11-29
        • 1970-01-01
        • 1970-01-01
        • 2020-06-24
        • 1970-01-01
        相关资源
        最近更新 更多