如何从其他数组值中过滤数组值并返回新数组?

daG*_*vis 5 php arrays loops filter array-filter

我有两个数组:$all_languages$taken_languages.一个包含所有语言(如200或者其他),但是之前选择的第二语言(从0到200).

我需要删除所有已经采取的语言($taken_languages)$all_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;

}
Run Code Online (Sandbox Code Playgroud)

谢谢你的建议!

Pau*_*aul 10

PHP具有内置函数(以及其他所有内容:P)

$available_languages = array_diff($all_languages, $taken_languages);
Run Code Online (Sandbox Code Playgroud)

PHP手册(array_diff)