【发布时间】:2017-09-03 20:14:19
【问题描述】:
我有 2 个数组需要以相同的顺序进行比较,我需要检查 subA 和 subB 类中的每个数组是否包含先决条件中的值。
我的先决条件数组
Array
(
[s1] => MAT
[s2] => ENG
[s3] => PHY
[s4] => CHE
[s5] => FRE
)
和我的类数组
Array
(
[subA] => MAT
[subB] => ENG
)
Array
(
[subA] => ENG
[subB] =>
)
Array
(
[subA] => MAT
[subB] => PHY
)
Array
(
[subA] => CHE
[subB] =>
)
Array
(
[subA] => MAT
[subB] => FRE
)
我的代码
$prerequisite = array(
's1' => 'MAT',
's2' => 'ENG',
's3' => 'PHY',
's4' => 'CHE',
's5' => 'FRE'
);
$confirmed = TRUE;
$i = 0;
foreach($prerequisite as $p )
{
if( in_array( $prerequisite, $classes[$i] ) )
{
// The prerequisite has been met
}
else
{
// The prerequisite has not been met
$confirmed = FALSE;
}
$i++;
}
if($confirmed == TRUE) { //run insert query here }
预期输出
如果满足所有先决条件,我需要返回 TRUE, 需要它来查找例如:
- 如果类
subA或subB中的第一个数组与必备数组中的s1值MAT匹配 - 如果类
subA或subB中的第二个数组与必备数组中的s2值ENG匹配 - 如果类
subA或subB中的第三个数组与必备数组中的s3值PHY匹配 - 如果类
subA或subB中的第四个数组与必备数组中的s4值CHE匹配 - 如果类
subA或subB中的第五个数组与必备数组中的s5值FRE匹配
问题
我总是收到FALSE 并且无法运行插入查询
【问题讨论】:
-
你能把 $classes 数组放到你的代码里吗?
-
@Ikillnukes 我的类数组来自在此条件之前运行的查询,这就是为什么我在我的问题中发布类数组的输出