如何在PHP中删除array_map中的特定值

时间:2018-11-23 05:49:21

标签: php arrays arraylist yii2-advanced-app array-map

在我的array_map示例下面,

$page_names = ArrayHelper::map($pagesList['data'], 'id', 'name');

在我的array_map输出下面,

Array
(
[2042793285968] => YoungZen Technologies
[777607709013] => Challengers
[772593172886] => Vadavalli
[152429224945] => Time Pass
)

现在我想删除上面列表中的“挑战者”,并且我必须对下拉列表使用相同的$ page_names变量,而无需挑战者。

我对数组的概念不好,我尝试过像未发生的array_filter和in_array一样。

3 个答案:

答案 0 :(得分:1)

这里是一种选择:

unset($page_names[array_search('Challengers', $page_names)]);

要在此处分解逻辑,首先我们用您要在关联数组中标识的 value 调用array_search。如果找到该值,array_search将返回与此值相对应的第一个键。

然后,我们使用unset传入相应的键,以从数组中完全删除该键/值对。

要使用键从地图上删除条目,代码要简单得多:

unset($page_names[777607709013]);

答案 1 :(得分:1)

或者您可以将其过滤掉-

$arr = array_filter($arr, function($v) {
    return $v != 'Challengers'; // return true if value not 'Cha...'
});

array_filter()

答案 2 :(得分:1)

使用array_diff的解决方案

$page_names = array_diff($page_names, ['Challengers']);