我有一个大型的多维车辆阵列,我试图根据家庭和模型选择进行过滤。
当用户选择一个家庭时,它会搜索该阵列并删除该家庭中没有的所有车辆。它有效。
当用户选择模型时,它会搜索数组并删除不在该系列中的所有车辆。它有效。
但是,当选择族和模型过滤器时,族过滤器可以工作,但模型过滤器无法取消设置。
if( $family != 'All' ) {
$i = 0;
foreach( $details as &$d ) {
$s = recursive_array_search( $family, $d, 5 ); // 5 is family column
if($s == false) {
unset($details[$i]);
$c--;
}
$i++;
}
}
if( $model != 'All' ) {
$i = 0;
foreach( $details as &$d ) {
$s = recursive_array_search( $model, $d, 6 ); // 6 is trim/model column
if($s == false) {
unset($details[$i]);
$c--;
}
$i++;
}
}
有趣的是,$ c,我的全局计数器,用于跟踪所有过滤后在数组中遗留的内容,即使未设置失败也会一直有效。