0

我正在使用 codeigniter 从各种数据库表中获取一些数据。有趣的是,在这段代码上方的 10 行中,我正在使用其他一些具有名称的数组来测试这个概念,并且一切都按预期工作。现在我正在对我的数据库中的数据尝试同样的事情,它似乎不起作用。

代码

            echo "a:";print_r($CITB);
            echo "<br />b:";print_r($PRB);
            echo "<br />c:";print_r($TB);
            echo "<br />d:";print_r($TRB);


            $a = $CITB; //I know this is empty
            $b = array_diff($PRB,$a);
            $c = array_diff($TB, $b, $a);
            $d = array_diff($TRB, $c, $b, $a);

             echo "<br /><br />a:";print_r($a);
             echo "<br />b:";print_r($b);
             echo "<br />c:";print_r($c);
             echo "<br />d:";print_r($d);die();

结果

a:
b:Array ( [0] => 8 [1] => 52 ) 
c:Array ( [0] => 8 [1] => 52 ) 
d:

a:
b:
c:
d:

预期结果

a:Array()
b:Array ( [0] => 8 [1] => 52 ) 
c:Array()
d:Array()
4

1 回答 1

1

array_diff 的参数应该是数组。否则它将返回null

在你的情况下print_r($CITB);不打印,Array()这意味着它不是一个空数组,很可能是一个空字符串。所以$b = array_diff($PRB,$a);结果$bnull

如果您打开错误报告,您应该会看到一些警告。否则使用var_dump代替print_r来查看变量的类型。

于 2012-11-14T02:12:19.957 回答