php - 在多维数组中搜索包含特定值的键并删除不包含特定值的键
问题描述
我有一个包含关键字(电子邮件、购物车等)的多维数组,每个关键字都有一个特定的应用程序列表(EmailAppA..)及其排名(1,2..)。
Array
(
[email] => Array
(
[EmailAppA] => 1
[EmailAppB] => 2
[EmailAppC] => 4
)
[cart] => Array
(
[CartAppA] => 1
[CartAppB] => 2
[MyApp] => 4
)
[reviews] => Array
(
[reviewAppA] => 1
[reviewAppB] => 4
[reviewAppC] => 5
[MyApp] => 7
)
我想要实现的是在数组中循环,找到包含应用程序“MyApp”的所有键,并在最终删除不包含值“MyApp”的键。该数组必须仅保留购物车和评论及其值,电子邮件已被删除。
到目前为止我的代码,但我被卡住了:
foreach ($mappedStuff as $keywords=>$value){
foreach ($value as $apps=>$rank){
if($apps != 'MyApp'){
unset($mappedStuff[$keywords];
}
}
}
解决方案
您可以使用array_walk
array_walk($a, function($v, $k) use (&$a){
if(!array_key_exists('MyApp', $v)) unset($a[$k]);
});
推荐阅读
- authentication - 如何在我的 Web 应用程序中通过 Snapchat 登录并在 Asp.net C# 中获取用户名、unique_id 和名称等用户详细信息
- javascript - 无法理解 map() 方法
- webpack - 如何避免在生产构建中给出垃圾名称
- python - 如何在 Mac 上正确安装 virtualenvwrapper?
- reactjs - 我有一个 react native 组件,我正在尝试通过 connect 将该组件连接到 react-redux,但出现错误
- android - 可运行与服务;用用例解释寿命
- javascript - 将文件从输入元素传递到 plupload(添加文件夹)
- ios - 这里有人知道如何解决“传递给不带参数的调用的参数”吗?
- html - 如何在标题上方制作段落层
- android - 每 5 分钟添加一次价值并重置 textview