如何在CI中匹配两个数组之间的列值与foreach

时间:2016-02-11 09:26:03

标签: codeigniter

如何使用CI中的foreach从Hashable获取$uDataTraineeID匹配的所有数据。

的print_r($ UDATA); 输出

$aData

的print_r($ ADATA); 输出:

Array
(
 [0]=>Array
   (
   [TraineeID]=>FMM003
   [Status]=>P
   [Review]=>1
   [Remarks]=>Allow
   )
 [1]=>Array
   (
   [TraineeID]=>30089
   [Status]=>P
   [Review]=>1
   [Remarks]=>Allow
   )
 [2]=>Array
   (
   [TraineeID]=>30097
   [Status]=>P
   [Review]=>1
   [Remarks]=>countable class not start
   )
)

3 个答案:

答案 0 :(得分:2)

找出下面的解决方案..我希望它可以帮到你

    $i = 0;
    foreach($uData as $k=>$v)
    {
      if($aData[$i]['TraineeID'] == $v['TraineeID'])
     {
       echo "match";
       $output[] = $v;
     }
     else
     {
      echo "fail";
     }
     $i++;
    }
    print_r($output);

答案 1 :(得分:1)

尝试以下代码。它可能会对你有帮助。

$result = array();
foreach($uData as $key=> $val) {
    foreach($aData as $key2 => $val2) {
        if($val['TraineeID'] == $val2['TraineeID']) {
            $result[] = $val;
        }
    }
}

echo "<pre>";
print_r($result);

答案 2 :(得分:1)

一种解决方案可能是代​​码更少且易于阅读: -

foreach($aData as $value )
{
    $key = array_search($value["TraineeID"], array_column($uData, 'TraineeID'));//get key of matched result
    if($key !== false )//check not falsy
    {
        echo "<pre>"; 
        print_r($uData[$key]);
        echo "</pre>"; 
    }
}
die();