/ Vergleichen von Array-Daten in PHP - PHP, Arrays, vergleichen

Array-Daten in PHP vergleichen - PHP, Arrays, vergleichen

Ich habe zwei Listen von Daten in MySQL-Tabellen mit den folgenden Ausgaben:

$BetDate - array(25) { [0]=> int(1355468400) [1]=> int(1355468400) [2]=> int(1355468400) [3]=> int(1355468400) [4]=> int(1355468400) [5]=> int(1355468400) [6]=> int(1355295600) [7]=> int(1355295600) [8]=> int(1355295600) [9]=> int(1355295600) [10]=> int(1355468400) [11]=> int(1355468400) [12]=> int(1355209200) [13]=> int(1355209200) [14]=> int(1355209200) [15]=> int(1355295600) [16]=> int(1355209200) [17]=> int(1355209200) [18]=> int(1355468400) [19]=> int(1355468400) [20]=> int(1355554800) [21]=> int(1355554800) [22]=> int(1355554800) [23]=> int(1355554800) [24]=> int(1355554800) }
array(25) { [0]=> string(10) "2012-12-14" [1]=> string(10) "2012-12-14" [2]=> string(10) "2012-12-14" [3]=> string(10) "2012-12-14" [4]=> string(10) "2012-12-14" [5]=> string(10) "2012-12-14" [6]=> string(10) "2012-12-12" [7]=> string(10) "2012-12-12" [8]=> string(10) "2012-12-12" [9]=> string(10) "2012-12-12" [10]=> string(10) "2012-12-14" [11]=> string(10) "2012-12-14" [12]=> string(10) "2012-12-11" [13]=> string(10) "2012-12-11" [14]=> string(10) "2012-12-11" [15]=> string(10) "2012-12-12" [16]=> string(10) "2012-12-11" [17]=> string(10) "2012-12-11" [18]=> string(10) "2012-12-14" [19]=> string(10) "2012-12-14" [20]=> string(10) "2012-12-15" [21]=> string(10) "2012-12-15" [22]=> string(10) "2012-12-15" [23]=> string(10) "2012-12-15" [24]=> string(10) "2012-12-15" }

$BetGameDate - array(4) { [0]=> int(1355554800) [1]=> int(1355468400) [2]=> int(1355900400) [3]=> int(1355554800) }
array(4) { [0]=> string(10) "2012-12-15" [1]=> string(10) "2012-12-14" [2]=> string(10) "2012-12-19" [3]=> string(10) "2012-12-15" }

Hier ist ein Teil meines PHP-Codes:

foreach($checkit as $row1) {
$BetDate[] = strtotime($row1["BetDate"]);
}
foreach($result as $row) {
$BetGameDate[] = strtotime($row["GameDate"]);
}
for($i=0; $i<=$count; $i++) {
if($BetDate==$BetGameDate[$i]) {
echo "Hello2";
}
}

Allerdings möchte ich die Daten auf folgende Weise vergleichen: Ich möchte durchschleifen $BetGameDate, sehen, ob irgendwelche Termine in $BetDate passen Sie die i-te Auswahl von an $BetGameDate. Der Code, den ich habe, spiegelt das Ergebnis nicht wider, und was mich wirklich verwirrt, ist, wenn ich mich verändere $BetDate zu $BetDate[$i] in der if-Anweisung echo "s Hello2 zweimal, wenn nur eine Auswahl gleich sein sollte (der 2. Wert, 1. Position in den Arrays). Hat jemand Vorschläge, wie zu vergleichen $BetGameDate[$i] mit allen Daten in $BetDate[]?

Jede Hilfe wird sehr geschätzt!

Antworten:

1 für die Antwort № 1

Probieren Sie diese Funktion aus: array_intersect


0 für die Antwort № 2

Nicht sicher, warum Sie die Liste der Ergebnisse in GameDate innerhalb der for-Schleife von BetDate durchgehen.

Ich denke, Sie möchten vielleicht Folgendes tun:

foreach($checkit as $row1) {
$BetDate[] = strtotime($row1["BetDate"]);
}
foreach($result as $row) {
$BetGameDate[] = strtotime($row["GameDate"]);
}
$matchArray = array_intersect($BetDate, $BetGameDate);

0 für die Antwort № 3
for($BetGameDate as $b) {
for($BetDate as $bet){
if($b == $bet) {
echo "Hello2";
}
}
}

Dies sollte jeden von BetDate mit jedem von BetGameDate vergleichen. Aber ich denke, dass array_intersect einfacher zu implementieren ist.

EDIT: Habe gerade gesehen, dass BetDate nicht so lang wie BetGameDate ist


0 für die Antwort № 4

Es ist ganz einfach:

<?php
$array1 = array("1", "2", "3");
$array2 = array("0", "2", "0");
$length = count($array1);

for ($i = 0; $i < $length; $i++) {
$key = array_search($array1[$i], $array2);

if ($key != null && $key > 0) {
echo "HELLO 2";
}
}
?>

Ändern Sie einfach Ihr $ BetDate zu $ ​​BetDate [$ i].