我有两个数组:$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;
}
感谢您的建议!
答案 0 :(得分:10)
PHP具有内置函数(以及其他所有内容:P)
$available_languages = array_diff($all_languages, $taken_languages);
答案 1 :(得分:3)
array_diff
功能对您有用。
http://php.net/manual/en/function.array-diff.php