【发布时间】:2016-04-01 10:33:19
【问题描述】:
我在 server1 中检索 phpmyadmin 中的所有数据库并将其命名为 $array1。我还检索了 server2 中 phpmyadmin 中的所有数据库,并将其称为 $array2。
现在我想比较两个数组并返回差异,但我得到一个错误“数组到字符串转换”这是我的代码:
$db = new MysqliDb ('');
$db->setHost('server1');
$array1=$db->rawQuery('SHOW DATABASES');
$db = new MysqliDb ('');
$db->setHost('server2');
$array2=$db->rawQuery('SHOW DATABASES');
$result = array_diff($array1, $array2);
echo'<pre>';
print_r($result);
echo'</pre>';
【问题讨论】:
-
你从哪里得到这个错误?
-
请提供
var_dump($array1)的示例输出。 -
很可能是因为
$array1和/或$array2是多维的。array_diff仅适用于一维数组,将数组中所有与字符串进行比较的值转换。请参阅array_diff手册页上的notes。 -
这就是我的数组的样子,并在我执行 array_diff Array ( [0] => Array ( [Database] => test ) [1] => Array ( [Database] => test1 ) ) var 转储看起来像这样 array(2) { [0]=> array(1) { ["Database"]=> string(4) "test" } [1]=> array(1) { ["数据库"]=> 字符串(5) "test2" }
-
这就是我的数组的样子,并在我执行 array_diff Array ( [0] => Array ( [Database] => test ) [1] => Array ( [Database] => test1 ) ) var 转储看起来像这样 array(2) { [0]=> array(1) { ["Database"]=> string(4) "test" } [1]=> array(1) { ["数据库"]=> 字符串(5) "test2" }