私はSQLデータベースからレコードを取得するこのPHPスクリプトを持っています。後述するように PHPのarray_diif()はSQL出力配列では機能しません
$sql1 = "SELECT TOP 3 id,hipoName FROM t2o_hipo_list";
$sql2 = "SELECT TOP 3 id,hipoName FROM hipo_list";
$result1 = sqlsrv_query($conn,$sql1);
$result2 = sqlsrv_query($conn,$sql2);
$row1=[];
$row2=[];
while ($rs1 = sqlsrv_fetch_array($result1, SQLSRV_FETCH_ASSOC)) {
$row1[] = $rs1;
}
while ($rs2 = sqlsrv_fetch_array($result2, SQLSRV_FETCH_ASSOC)) {
$row2[] = $rs2;
}
print_r($row1);
print_r($row2);
上記スクリプトの出力があった
、
Array
(
[0] => Array
(
[id] =>
[hipoName] => Channa
)
[1] => Array
(
[id] =>
[hipoName] => Chaminda
)
[2] => Array
(
[id] =>
[hipoName] => Niroshana
)
)
Array
(
[0] => Array
(
[id] => 2531
[hipoName] => Chaminda
)
[1] => Array
(
[id] => 2532
[hipoName] => Niroshana
)
)
そして、私は、しかし、
$x = array_diff($row1,$row2);
を$row1
と$row2
変数の配列差を使用エラーが発生しました。
Error: Array to string conversion
以下に示すように、私は
<?php
$active = ['a','b','c','d','e'];
$current = ['b','c','f','g'];
echo 'data 1: ';
print_r($active);
echo '<br/>';
echo 'data 2: ';
print_r($current);
echo '<br/><br/>';
$a1 = array_diff($active,$current);
$a2 = array_diff($current,$active);
echo 'output 1: ';
print_r($a1);
echo '<br/>';
echo 'outut 2: ';
print_r($a2);
?>
、簡単なスクリプトと同じ概念を試してみましたが、上記のスクリプトの出力は私が必要なもので、
data 1: Array ([0] => a [1] => b [2] => c [3] => d [4] => e)
data 2: Array ([0] => b [1] => c [2] => f [3] => g)
output 1: Array ([0] => a [3] => d [4] => e)
outut 2: Array ([2] => f [3] => g)
どのように私はこの出力を達成することができ、ありますこの同じ概念でそれを得ることは可能ですか? manual for array_diff()状態として
がないスパムのタグを行い、これは 'mysql'の問題ではありません、uが唯一の関連タグ –
にタグを付ける必要があります次のようにしてください:** $ x = array_diff($ row1 [0]、$ row1 [1]、$ row1 [2]、$ row2 [0]、$ row2 [1]); ** –