如何解决在 PHP 中匹配单个数组和多维数组
抱歉,我无法在 stackoverflow 中找到任何答案,因此发布此问题。我正在尝试匹配这两个数组 - 如果 $sc 在 $sc_array 中的值返回 true。
$sc = array('Male','3','5','1','26-35');
$sc_array = array(
'gender' => array('Male','Female'),'flow' => array("1","2"),'water' => array("5"),'fat' => array("3"),'gene' => array("1","2","3","4","5"),'ankle' => array("3",'type' => array("1","5","6"),'age' => array("19-25","26-35","36-45","46-55","56-70","71-99")
);
我正在尝试将 $sc[0] 与 $sc_array['gender] 匹配;等等。如果所有这些都匹配,则应返回 true,否则为 false。这是我到目前为止所做的工作,但有很多警告和通知。
function find_sc_in_scvalue($sc,$sc_array){
foreach ($sc_array as $item)
{
$inner_array[] = $item;
for ($i=0; $i<count($sc); $i++){
if(in_array($sc[$i],$inner_array[$i])){
$result[$i] = "true";
}
else $result[$i] = "false";
}
}
return $result;
}
这将返回一个正确显示“真”和“假”的数组。 它还显示未定义的偏移量通知(我找到了 array_pad 解决方案)和关于 inner_array[$i] 不是数组的警告。 (我知道不是,但我不知道我还应该如何匹配它们?)
我在下面的答案中提供了完美的解决方案。
解决方法
我被这个问题困住了 2 天多,我在发布这个问题后写了另一个代码,它似乎工作得很好。欢迎提出任何优化建议。
$result1 = find_sc_in_scvalue($sc,$sc_array) ? "Match" : "Not Found";
function find_sc_in_scvalue($needle,$haystack){
foreach ($haystack as $item)
{
$array[] = $item;
}
for ($i=0; $i<count($needle); $i++){
if(in_array($needle[$i],$array[$i])){
$result[] = "True";
}
else $result[] = "False";
}
if(in_array("False",$result)){
return false;
} else return true;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。