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

How to remove particular value in array_map in php

下面是我的 array_map 示例,

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

下面是我的 array_map 输出,

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

现在我想删除上面列表中的 'Challengers',我必须对没有挑战者的下拉列表使用相同的 $page_names 变量。

我不擅长数组概念,我试过像 array_filter 和 in_array 那样没有发生。

这是一个选项:

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

为了分解这里的逻辑,首先我们调用 array_search 并使用您想要在关联数组中标识的 array_search将return这个值对应的第一个key,如果可以找到该值。

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

使用键从映射中删除条目,代码简单得多:

unset($page_names[777607709013]);

或者您可以将其过滤掉 -

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

array_filter()

解决方案使用 array_diff

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