2016-04-01 39 views
1

我检索server1中phpmyadmin中的所有数据库并调用$ array1。我还检索server2中phpmyadmin中的所有数据库并调用$ array2。如何比较数组并返回差异php

现在我想比较两个数组并返回区别,但我得到一个错误“数组字符串转换”这里是我的代码:

$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>'; 
+0

你在哪儿工作那个错误? –

+0

请提供'var_dump($ array1)'的样例输出。 – Furgas

+4

很可能是因为'$ array1'和/或'$ array2'是多维的。 'array_diff'只适用于一维数组,将数组中的所有值与字符串进行比较。请参阅'array_diff'的手册页上的[notes](http://php.net/manual/en/function.array-diff.php#refsect1-function.array-diff-notes)。 – Plenka

回答

0

我得到一个解决方案..和array_diff不会只与普通数组,所以我打破了我的嵌套的数组,然后使用和array_diff和它的工作

1

一个选项将使用array_udiff()http://php.net/manual/en/function.array-udiff.php。并创建您的阵列所需的功能。 (帮不了你,而不会对阵列的任何信息)

+0

给定值,如果可用的,这是我的阵列看起来像,并给出一个错误,其中i做和array_diff 阵列 ([0] =>数组 ( [数据库] =>测试 ) [1] =>数组 ( [数据库] => TEST1 ) ) 了var转储看起来像这样 阵列(2){ [0] => 阵列(1){ [ “Database”] => string(4)“test” } [1] => array(1){ [“Database”] => string(5)“test2” } – ernys

相关问题