从关联数组php中删除项目

时间:2014-06-29 13:45:40

标签: php arrays

如何从此数组中删除当前所选语言:

$lang = 'en-US';
$languages = array('LANG001' => 'en-US', 'LANG002' => 'es-ES', 'LANG003' => 'fr-CA');

我尝试使用unset($languages[$lang])但没有成功。

感谢。

3 个答案:

答案 0 :(得分:2)

尝试:

unset($languages[array_search($lang,$languages,true)]); 

答案 1 :(得分:1)

1)数组表达式中的索引必须是键,而不是值。如果要按值删除元素,则必须先找到其键。

$key = array_search($lang, $languages);
if ($key) {
    unset($languages[$key]);
}

但是,这只会删除数组中第一次出现的值。如果该值可以多次出现并且您想要删除所有值,则可以执行以下操作:

$languages = array_diff($languages, array($lang));

答案 2 :(得分:0)

为什么要在循环中回显特定值?

您可以根据模式或简单地使用循环来回显值。

要访问循环内部的变量,您的操作方式与脚本中的其他位置相同, 检查变量是否存在然后回显那个特定的var。

只需使用

(isset($languages['LANG001']) ? echo $languages['LANG001'] : null);

(isset($languages['LANG002']) ? echo $languages['LANG002'] : null);