我有一个包含关键字(电子邮件、购物车等)的多维数组,每个关键字都有一个特定的应用程序列表(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]; } }}
3 回答
凤凰求蛊
TA贡献1825条经验 获得超4个赞
您可以使用array_filter过滤数组。在其回调函数中,您将查找“MyApp”的存在。如果它不存在,回调函数将返回 false,因此当前键将被过滤掉。
$filtered = array_filter($array, function($apps)
{
return in_array('MyApp', $apps);
});
我刚刚注意到,你想搜索一个关键的存在,而不是价值,所以只需将我的代码更改为:
$filtered = array_filter($array, function($apps)
{
return isset($apps['MyApp']);
});
- 3 回答
- 0 关注
- 130 浏览
添加回答
举报
0/150
提交
取消