Abdul Rahman
Abdul Rahman

Reputation: 1705

PHP PDO comparison of array element by in_array() method is not working

I need to compare element from an array to another array with in_array() method:

$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()
}

Now i want to compare the above array elements with each element in the iterated loop over the following loop

<?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()
    }
?>

in fact it populate the following array:

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 ) 
)

but i have no luck to compare, because the array contained with another array and i don't know what to do with this now ?

Upvotes: 0

Views: 166

Answers (1)

Florian Humblot
Florian Humblot

Reputation: 955

You need to loop through the parent array to compare to the inner arrays.

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
    }
}

This way you'll be able to check wether whatever you're looking for is inside one of the results you got from the database

Upvotes: 1

Related Questions