Php 具有多个筛选器的数组的筛选器数组
我不知道是否有人问过这个问题,但我找不到答案。 我有一个数组,我需要组合一些过滤器才能看到结果。 从选择中,我获取数据,以便能够过滤结果。 我需要显示包含这两个过滤器的所有结果Php 具有多个筛选器的数组的筛选器数组,php,arrays,filter,Php,Arrays,Filter,我不知道是否有人问过这个问题,但我找不到答案。 我有一个数组,我需要组合一些过滤器才能看到结果。 从选择中,我获取数据,以便能够过滤结果。 我需要显示包含这两个过滤器的所有结果 <select name = "filter"> <option value = "1"> apple </option> <option value = "2"> pear </option> </select> <Label
<select name = "filter">
<option value = "1"> apple </option>
<option value = "2"> pear </option>
</select>
<Label> Combine </ label>
<select name = "filter2">
<option value = "1"> melon </option>
<option value = "2"> strawberry </option>
</select>
foreach ($ complete as $ subdime) {
$ substr = $ filter;
$ substr2 = $ filter2;
if ($ filter! == 'total' && strpos ($ subdime [0], $ substr)! == false && $ filter2 === "") {/ * print result * /}
我的目标是能够同时打印对应于两个过滤器的结果
对不起我的英语
谢谢
阵列
Array (
[1] => Array (
[0] => (apple)
[1] => (not set)
[2] => 20191001
[3] => 123456
[4] => cereal
)
[2] => Array (
[0] => (apple)
[1] => (not set)
[2] => 20191001
[3] => 7894561
[4] => cacao
)
[3] => Array (
[0] => (melon)
[1] => (not set)
[2] => 20191002
[3] => 123489
[4] => null
)
[4] => Array (
[0] => (pear)
[1] => (not set)
[2] => 20191002
[3] => 365478
[4] => cacao
)
[5] => Array (
[0] => (pear)
[1] => (not set)
[2] => 20191002
[3] => 1697823
[4] => banana
)
[6] => Array (
[0] => (strawberry)
[1] => (not set)
[2] => 20191002
[3] => 6578931
[4] => null
)
我将通过在两个过滤器外创建一个数组来解决这个问题,并使用“in_array”检查值 像这样:
请添加
$complete
数组数组([1]=>数组([0]=>(苹果)[1]=>(未设置)[2]=>20191001[3]=>123456[4]=>谷物)[2]=>数组([0]=>(苹果)[1]=>(未设置)[2]=>20191001[3]=>7894561[4]=>可可[3]=>数组([0]=>(甜瓜)[1]=>(未设置)[2]=>20191002[3]=>123489[4]=>[0]=>(梨)[1]=>(未设置)[2]=>20191002[3]=>365478[4]=>cacao[5]=>数组([0]=>(梨)[1]=>(未设置)[2]=>20191002[3]=>1697823[4]=>香蕉)[6]=>数组([0]=>(草莓)[1]=>(未设置)[2]=>20191002[3]=>6578931[4]=>null)
代码的间距使大部分代码无效。变量名称前需要加上美元符号,即不等号(!=
)感叹号后不应有空格。当前,您似乎正在搜索每个子数组中的第一项,在字符串中查找筛选器。因此,给定您的表单,您有一个筛选器字符串,例如“1”,并在字符串中查找该字符串。给定您提供的搜索字符串的数据(瓜)'因为数字永远不会匹配。您想匹配什么?我想打印同时与筛选器1和筛选器2的值对应的所有值
Array (
[1] => Array (
[0] => (apple)
[1] => (not set)
[2] => 20191001
[3] => 123456
[4] => cereal
)
[2] => Array (
[0] => (apple)
[1] => (not set)
[2] => 20191001
[3] => 7894561
[4] => cacao
)
[3] => Array (
[0] => (melon)
[1] => (not set)
[2] => 20191002
[3] => 123489
[4] => null
)
[4] => Array (
[0] => (pear)
[1] => (not set)
[2] => 20191002
[3] => 365478
[4] => cacao
)
[5] => Array (
[0] => (pear)
[1] => (not set)
[2] => 20191002
[3] => 1697823
[4] => banana
)
[6] => Array (
[0] => (strawberry)
[1] => (not set)
[2] => 20191002
[3] => 6578931
[4] => null
)
$filters = [$filter1,$filter2];
foreach ($complete as $index => $subdime) {
if(in_array($subdime[0],$filters)){
// value matches one of the filters - do something
}
}