Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php比较/匹配值的范围_Php_Multidimensional Array_Match_Associative Array - Fatal编程技术网

php比较/匹配值的范围

php比较/匹配值的范围,php,multidimensional-array,match,associative-array,Php,Multidimensional Array,Match,Associative Array,我有一个数组,需要将mysql中的数据与之进行比较。通常我会做一个直接的比较,这样我就可以做一个if$array[$I]==$mysql[$I],但我确实有一个例子,我需要将它与一系列数字进行匹配,比如18-19、20-24等。我查看了preg_match和preg_grep,但它们似乎不是我想要的 我只需要比较得出一个正确/错误的结果 我试图匹配的阵列部分如下所示: "age"=>array( '18-19'=>array('total'=>0,'comple

我有一个数组,需要将mysql中的数据与之进行比较。通常我会做一个直接的比较,这样我就可以做一个if$array[$I]==$mysql[$I],但我确实有一个例子,我需要将它与一系列数字进行匹配,比如18-19、20-24等。我查看了preg_match和preg_grep,但它们似乎不是我想要的

我只需要比较得出一个正确/错误的结果

我试图匹配的阵列部分如下所示:

"age"=>array(
        '18-19'=>array('total'=>0,'completed'=>0),
        '20-24'=>array('total'=>0,'completed'=>0),
        '25-29'=>array('total'=>0,'completed'=>0),
        '30-34'=>array('total'=>0,'completed'=>0),
        '35-39'=>array('total'=>0,'completed'=>0),
        '40-44'=>array('total'=>0,'completed'=>0),
        '45-49'=>array('total'=>0,'completed'=>0),
        '50-54'=>array('total'=>0,'completed'=>0),
        '55-59'=>array('total'=>0,'completed'=>0)
),"race"=>array(
        "White"=>array('total'=>0,'completed'=>0),
        "Black"=>array('total'=>0,'completed'=>0),
        "Hispanic"=>array('total'=>0,'completed'=>0),
        "Asian"=>array('total'=>0,'completed'=>0),
        "Pacific Islander"=>array('total'=>0,'completed'=>0),
        "Multiracial"=>array('total'=>0,'completed'=>0),
        "Other"=>array('total'=>0,'completed'=>0)
)
有没有干净的方法可以做到这一点

谢谢

列出$min,$max=explode'-',$array[$i]; 如果$mysql[$i]>=$min&&$mysql[$i]列出$min,$max=explode'-',$array[$i]; 如果$mysql[$i]>=$min&&$mysql[$i]PHP可能有用:

foreach ($array['age'] as $ageRange => $something) {
    list($start, $limit) = explode('-', $ageRange);
    foreach (range($start, $limit) as $age) {
        // compare
    }
}
PHP可能很有用:

foreach ($array['age'] as $ageRange => $something) {
    list($start, $limit) = explode('-', $ageRange);
    foreach (range($start, $limit) as $age) {
        // compare
    }
}

为什么不用数据库数据构建一个数组,类似于$array的模式,最后尝试一下$array==mysqldata?顺便提一下您的表是什么样子的?为什么不用db数据构建一个数组,类似于$array的模式,最后尝试一下$array==$mysqldata?顺便提一下你的桌子看起来怎么样?@nachito:谢谢。我遵守法律-@雅各布:哎呀!我的变量倒过来了。修正了,我喜欢接吻。另外,切换这些变量帮助很大lol@jacob:是的-D@nachito:谢谢。我遵守法律-@雅各布:哎呀!我的变量倒过来了。修正了,我喜欢接吻。另外,切换这些变量帮助很大lol@jacob:是的-D