如何在 Codeigniter 视图中检查两个结果数组?

问题描述 投票:0回答:1

我在控制器中有两个结果数组。我想检查第一个数组中的值是否存在于第二个数组中,并以不同的名称显示两个数组中都存在和不存在的值。我的两个结果数组是:

$res['c'] = $this->insert_model->content();
$res['q'] = $this->insert_model->diffpan();

我的代码:

foreach ($c->result() as $con) {
    $c1 = $con->content_id;
    foreach ($q->result() as $row) {
        $r1 = $row->content_id;
        if ($c1 == $r1) {
            print $c1;
            print "In both";
        } elseif ($c1 != $r1) {
            continue;
        }
    }
    print $c1;
    print "Only in one";
}
php codeigniter resultset intersection array-difference
1个回答
-1
投票

您可以使用 array_intersect()array_diff

array_diff 将 array1 与一个或多个其他数组进行比较,并返回 array1 中不存在于任何其他数组中的值。

$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2); //Array([1] => blue);

array_intersect 返回一个数组,其中包含所有参数中存在的 array1 的所有值。请注意,密钥会被保留。

$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2); //Array( [a] => green [0] => red)

根据您给定的值

$array1=array('4','3','2');
$array2= array('4','3');
print_r(array_diff($array1,$array2));
OutPut : Array ( [2] => 2 )

$array1=array('4','3','2');
$array2= array('4','3');
print_r(array_intersect($array1,$array2));
OutPut : Array ( [0] => 4 [1] => 3 )
© www.soinside.com 2019 - 2024. All rights reserved.