ホームページ > バックエンド開発 > PHPチュートリアル > array_diff() を使用して 2 つの配列の差分を比較すると、異なる要素が 1 つしか返されないのはなぜですか?

array_diff() を使用して 2 つの配列の差分を比較すると、異なる要素が 1 つしか返されないのはなぜですか?

WBOY
リリース: 2016-06-13 12:16:59
オリジナル
1462 人が閲覧しました

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 $diff[$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);
ログイン後にコピー
の前に配列を出力して、

が何であるかを確認します。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート