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
            }
        }