array_diff() を使用して 2 つの配列の差分を比較すると、異なる要素が 1 つしか返されないのはなぜですか?
データベース内の異なるテーブルにある同じフィールドの値を取り出し、それらを 2 つの異なる配列に入れました。array_diff() を使用して配列 1 の要素を検索しましたが、配列 2 の要素は検索しませんでした。なぜ 1 つだけなのでしょうか。異なる要素が返されましたか?
コードは次のとおりです:
error_reporting(E_ALL&~E_NOTICE);
header('Content-type:text/html; charset=utf-8');
date_default_timezone_set( 'アジア/上海');
require_once("init.php");
$sql="select * from dev_property";
$res=mysql_query($sql) または die(mysql_error) ()) ;
$num_rows=mysql_num_rows($res);
while($sn=mysql_fetch_array($res))
{
$prime=array();
$prime[ ]=$ sn["シリアル番号"];
for($i=0;$i
echo $prime[$i];
echo "";
}
}
echo "";
$starttime = '08:25:00';
$ endtime = ' 23:35:00';
$sql="select * from data where time>='".date('Y-m-d').' '.$starttime."' and time<=' ".date ('Y-m-d').' '.$endtime."'" ;
$result=mysql_query($sql) または die(mysql_error());
while($date=mysql_fetch_array( $result) )
{
// $num_rows1=mysql_num_rows($result);
$a=array();
$a[]=$date["シリアル番号"] ;
for($i=0;$i
echo $a[$i];
echo " ;";
}
echo "";
}
$diff=array_diff($prime,$a);
for($ i=0;$i
echo "";
echo count($diff );
echo "";
?>
実行結果:
array $prime
862118028862461
862118028862462
862118028862463
862118028862464
Array$ a
862118028862461
結果
862118028862464
1
当初の意図によれば、戻り値は
862118028862462
862118028862463
86 2118028862464
862118028862464 のみが返されるようになりました。なぜですか?
------解決策のアイデア----------------------
あなたは $diff=array_diff($ prime,$a);
print_r($prime);<br />print_r($a);<br />$diff=array_diff($prime,$a);