我需要将元素从数组到另一个数组与in_array()方法:
$oldAttachedObjs = array();//this array need to be compare with single element of other loop
$sqlObjAttached = "SELECT sno,ins_sno,obj_sno FROM cases_objections WHERE ins_sno = :ins_sno";
$paramObj = array(':ins_sno'=>$ins_sno);
if($db->dbQuery($sqlObjAttached,$paramObj)){
foreach($db->getRecordSet($sqlObjAttached,$paramObj) as $o){
$oldAttachedObjs[] = $o;
}//foreach()
}
现在,我想将上述数组元素与以下循环中的迭代循环中的每个元素进行比较
<?php
$sqlChildren = "SELECT sno,obj_sno,child_lbl FROM list_objection_children WHERE is_active = 1 AND obj_sno = :obj_sno ORDER BY sno ASC";
$param = array(':obj_sno'=>$obj['sno']);
if($db->dbQuery($sqlChildren,$param)){
foreach($db->getRecordSet($sqlChildren,$param) as $ch){
?>
<ul class="obj_ul">
<li>
<div class="checkbox checkbox-primary">
<?php print_r($oldAttachedObjs[0]); ?>
<input type="checkbox" <?php if(in_array($ch['sno'],$oldAttachedObjs['obj_sno'])){ ?> checked <?php //} ?> value="1" id="chk_<?php echo($ch['sno']);?>" name="chk_<?php echo($ch['sno']);?>" class="styled">
<label style="font-weight: normal !important;" for="chk_<?php echo($ch['sno']);?>"><?php echo($ch['child_lbl']); ?></label>
</div>
</li>
</ul>
<?php
}//foreach()
}
?>
实际上填充以下数组:
Array (
[0] => Array ( [sno] => 1 [0] => 1 [ins_sno] => 2 [1] => 2 [obj_sno] => 3 [2] => 3 ),
[1] => Array ( [sno] => 2 [0] => 2 [ins_sno] => 2 [1] => 2 [obj_sno] => 49 [2] => 49 ),
[2] => Array ( [sno] => 3 [0] => 3 [ins_sno] => 2 [1] => 2 [obj_sno] => 52 [2] => 52 ),
[3] => Array ( [sno] => 5 [0] => 5 [ins_sno] => 2 [1] => 2 [obj_sno] => 54 [2] => 54 )
)
但是我没有运气可以比较,因为数组包含另一个数组,我现在不知道该怎么办?
您需要循环穿过父数组以比较内部数组。
foreach($oldAttachedObjs as $objs){
if(in_array('what you are looking for', $objs){
//it is in the array, do what you want
}else{
//it is not in the array, deal with it accordingly
}
}
这样,您将能够检查您要寻找的任何内容都在数据库中获得的结果之一