php - 如何从数组中过滤特定值?

标签 php arrays loops

嗨,我有一个如下数组

 "data": [
{
  "title": "title1",
  "category": "apple"
},
{
  "title": "title2",
  "category": "bannana"
}, 
{
  "title": "title3",
  "category": "grape"
}
]

等等

我有一个如下所示的变量

$categories = 'bannana, grape';

我有一个循环遍历数据并提取所有标题。

我想要实现的是一个循环,它将遍历数组并仅提取类别与 $categories 变量中的值之一匹配的标题。

因此在这种情况下,title1 将被忽略,因为它位于 Apple 类别中。但 title2 和 title3 将被添加到新数组或放入字符串等。

如果您能提供有关从哪里开始的帮助,我们将不胜感激。谢谢

最佳答案

简单

$categories = 'bannana, grape';
$categories = array_flip(array_map("trim", explode(",", $categories)));

$data = array_filter($data, function ($v) use($categories) {
    return isset($categories[$v['category']]);
});
var_dump($data);

See Live DEMO

关于php - 如何从数组中过滤特定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17094752/

相关文章:

javascript - 使用 jQuery 执行 PHP 脚本 onclick

javascript - 使用 Javascript 计算多个动态值的百分比变化

javascript - 添加选项以选择 PHP 中回显的每一行

php - Magmi Import SQL 导入,适用于本地服务器

php - 单选按钮显示悬停在两个单选按钮之间使用 jquery

php - 从函数返回数据库数组

javascript - 使用javascript显示具有唯一id的html标签标签中数组中的文本

json - React Object of Objects - 如何循环

c++ - 如何为 Debug模式优化大循环

php - Symfony 和 Doctrine 中对数据库的查询过多