【发布时间】:2021-03-05 04:26:54
【问题描述】:
我正在使用库存数据库(是的,我知道这可能会使用 mysql 完成),但我目前最终得到了一个 php 数组
$products = array( array("id"=>"123", "sku"=>"MED_BL_DRESS", "size"=>"medium", "color"=>"black"),
array("id"=>"321", "sku"=>"LG_GR_DRESS", "size"=>"large", "color"=>"green"),
array("id"=>"31321", "sku"=>"LG_RD_DRESS", "size"=>"large", "color"=>"red")
);
用户会选择一个尺寸,我要传入函数:
filterArray($products, array("size"=>"medium"))
我希望我能得到一个数组,只有符合该条件的记录...如果我通过了多个条件,那么问题就来了,
filterArray($products, array("size"=>"medium", "color"=>"black"))
然后数组会给我一个产品数组,其中只有一个产品在数组中匹配。我正在尝试构建它,以便我可以在 products 数组中拥有任意数量的键值(也许有些产品将“性别”作为过滤器,而另一些则不会。它可能有很多过滤器变体。
我尝试循环遍历数组并暴力破解它,但我认为必须有一种比一堆嵌套递归函数更优雅的方法。
【问题讨论】:
-
那么
basically您想根据任何value过滤数组吗?同样,您需要插入到目前为止您尝试过的内容 -
你觉得为什么这么难?根本不需要(嵌套)递归吗?你真的知道什么是递归吗?这是一个函数调用自身的时候。请参阅我的答案以获得简单的解决方案。
-
由于现在提供了一些答案,因此选择其中一个作为正确答案是公平的。