Ich habe den folgenden Code, der ein Array erzeugt.Vergleichen mehrerer Arrays für die gleichen Werte
Ich muss dieses Array aufteilen und vergleichen Sie die resultierenden Arrays gegeneinander.
Ich muss nur Arrays vergleichen, die nebeneinander in der Reihenfolge sind.
Also die erste und zweite, zweite und dritte, so weiter ... Ich kann ein anderes Array erstellen, um die Reihenfolge zu speichern, die verglichen werden muss, wenn das hilft. Ich habe nur keine Ahnung, wie ich sie so überprüfen kann.
Das Ziel ist es, sicherzustellen, dass der Arrays auf beiden Seiten voneinander nicht den gleichen $ racer_id enthält
Es ist für ein Scoring-App für eine Rennstrecke und einen Rennfahrer nicht in dem Rennen sein kann, dass man sich nach das andere.
Kann mir jemand einen Schub in die richtige Richtung geben?
** es wird nur eine $ event_id geben, mit mehreren $ class_id und $ racer_id.
<?php
function getEventClasses()
{
global $db;
global $event_id;
try {
$getEventClasses = $db->prepare('SELECT class_id
FROM tbl_event_classes
WHERE event_id = :event_id
ORDER BY sort');
$getEventClasses->bindValue(':event_id', $event_id);
$getEventClasses->execute();
} catch (PDOException $ex) {
echo 'An Error occurred!<br>';
//user friendly message
$ex->getMessage();
echo $ex;
exit;
}
$eventClasses = [];
while ($r = $getEventClasses->fetch(PDO::FETCH_ASSOC)) {
$eventClasses[] = [
'class_id' => $r['class_id']
];
}
return $eventClasses;
}
function getEntries($class_id)
{
global $db;
global $event_id;
try {
$getEntries = $db->prepare('SELECT tbl_event_entries.racer_id,
tbl_event_entries.class_id,
tbl_event_entries.event_id,
tbl_event_classes.class_type,
tbl_event_classes.points_class,
tbl_moto_order.moto_nbr
FROM tbl_moto_order
INNER JOIN (tbl_event_entries
LEFT JOIN tbl_event_classes
ON (tbl_event_entries.event_id = tbl_event_classes.event_id)
AND (tbl_event_entries.class_id = tbl_event_classes.class_id))
ON (tbl_moto_order.class_id = tbl_event_entries.class_id)
AND (tbl_moto_order.event_id = tbl_event_entries.event_id)
WHERE tbl_event_entries.event_id = :event_id
AND tbl_event_entries.racer_id != "9999"
AND tbl_event_entries.class_id = :class_id');
$getEntries->bindValue(':event_id', $event_id);
$getEntries->bindValue(':class_id', $class_id);
$getEntries->execute();
} catch (PDOException $ex) {
echo 'An Error occurred!<br>';
//user friendly message
$ex->getMessage();
echo $ex;
exit;
}
$eventEntries = [];
while ($r = $getEntries->fetch(PDO::FETCH_ASSOC)) {
$eventEntries[] = [
'racer_id' => $r['racer_id'],
'class_id' => $r['class_id'],
'event_id' => $r['event_id'],
'class_type' => $r['class_type'],
'points_class' => $r['points_class'],
'moto_nbr' => $r['moto_nbr']
];
}
return $eventEntries;
}
$eventClasses = getEventClasses();
foreach ($eventClasses as $eventClass) {
$eventEntries = getEntries($eventClass['class_id']);
foreach ($eventEntries as $eventEntry) {
$runningClasses[$eventClass['class_id']][] = [
'racer_id' => $eventEntry['racer_id'],
'event_id' => $eventEntry['event_id'],
'class_type' => $eventEntry['class_type'],
'points_class' => $eventEntry['points_class'],
'moto_nbr' => $eventEntry['moto_nbr']
];
}
}
foreach ($runningClasses as $class) {
$f->printr($class);
}
?>
das Array:
Array
(
[17] => Array
(
[0] => Array
(
[racer_id] => 95
[event_id] => 326
[class_type] => A
[points_class] => 17
[moto_nbr] => 3
)
[1] => Array
(
[racer_id] => 350
[event_id] => 326
[class_type] => A
[points_class] => 17
[moto_nbr] => 3
)
[2] => Array
(
[racer_id] => 493
[event_id] => 326
[class_type] => A
[points_class] => 17
[moto_nbr] => 3
)
[3] => Array
(
[racer_id] => 295
[event_id] => 326
[class_type] => A
[points_class] => 17
[moto_nbr] => 3
)
[4] => Array
(
[racer_id] => 1142
[event_id] => 326
[class_type] => A
[points_class] => 17
[moto_nbr] => 3
)
[5] => Array
(
[racer_id] => 628
[event_id] => 326
[class_type] => A
[points_class] => 17
[moto_nbr] => 3
)
)
[14] => Array
(
[0] => Array
(
[racer_id] => 1142
[event_id] => 326
[class_type] => A
[points_class] => 14
[moto_nbr] => 4
)
[1] => Array
(
[racer_id] => 162
[event_id] => 326
[class_type] => A
[points_class] => 14
[moto_nbr] => 4
)
[2] => Array
(
[racer_id] => 151
[event_id] => 326
[class_type] => A
[points_class] => 14
[moto_nbr] => 4
)
[3] => Array
(
[racer_id] => 1176
[event_id] => 326
[class_type] => A
[points_class] => 14
[moto_nbr] => 4
)
[4] => Array
(
[racer_id] => 401
[event_id] => 326
[class_type] => A
[points_class] => 14
[moto_nbr] => 4
)
[5] => Array
(
[racer_id] => 264
[event_id] => 326
[class_type] => A
[points_class] => 14
[moto_nbr] => 4
)
[6] => Array
(
[racer_id] => 797
[event_id] => 326
[class_type] => A
[points_class] => 14
[moto_nbr] => 4
)
[7] => Array
(
[racer_id] => 124
[event_id] => 326
[class_type] => A
[points_class] => 14
[moto_nbr] => 4
)
[8] => Array
(
[racer_id] => 29
[event_id] => 326
[class_type] => A
[points_class] => 14
[moto_nbr] => 4
)
[9] => Array
(
[racer_id] => 74
[event_id] => 326
[class_type] => A
[points_class] => 14
[moto_nbr] => 4
)
[10] => Array
(
[racer_id] => 117
[event_id] => 326
[class_type] => A
[points_class] => 14
[moto_nbr] => 4
)
[11] => Array
(
[racer_id] => 408
[event_id] => 326
[class_type] => A
[points_class] => 14
[moto_nbr] => 4
)
[12] => Array
(
[racer_id] => 501
[event_id] => 326
[class_type] => A
[points_class] => 14
[moto_nbr] => 4
)
[13] => Array
(
[racer_id] => 1125
[event_id] => 326
[class_type] => A
[points_class] => 14
[moto_nbr] => 4
)
)
[8] => Array
(
[0] => Array
(
[racer_id] => 1180
[event_id] => 326
[class_type] => A
[points_class] => 8
[moto_nbr] => 6
)
)
[16] => Array
(
[0] => Array
(
[racer_id] => 73
[event_id] => 326
[class_type] => A
[points_class] => 16
[moto_nbr] => 12
)
[1] => Array
(
[racer_id] => 9
[event_id] => 326
[class_type] => A
[points_class] => 16
[moto_nbr] => 12
)
[2] => Array
(
[racer_id] => 525
[event_id] => 326
[class_type] => A
[points_class] => 16
[moto_nbr] => 12
)
)
[13] => Array
(
[0] => Array
(
[racer_id] => 1089
[event_id] => 326
[class_type] => A
[points_class] => 13
[moto_nbr] => 15
)
[1] => Array
(
[racer_id] => 73
[event_id] => 326
[class_type] => A
[points_class] => 13
[moto_nbr] => 15
)
[2] => Array
(
[racer_id] => 162
[event_id] => 326
[class_type] => A
[points_class] => 13
[moto_nbr] => 15
)
[3] => Array
(
[racer_id] => 264
[event_id] => 326
[class_type] => A
[points_class] => 13
[moto_nbr] => 15
)
[4] => Array
(
[racer_id] => 797
[event_id] => 326
[class_type] => A
[points_class] => 13
[moto_nbr] => 15
)
[5] => Array
(
[racer_id] => 422
[event_id] => 326
[class_type] => A
[points_class] => 13
[moto_nbr] => 15
)
[6] => Array
(
[racer_id] => 1176
[event_id] => 326
[class_type] => A
[points_class] => 13
[moto_nbr] => 15
)
[7] => Array
(
[racer_id] => 76
[event_id] => 326
[class_type] => A
[points_class] => 13
[moto_nbr] => 15
)
[8] => Array
(
[racer_id] => 1136
[event_id] => 326
[class_type] => A
[points_class] => 13
[moto_nbr] => 15
)
)
[5] => Array
(
[0] => Array
(
[racer_id] => 600
[event_id] => 326
[class_type] => Y
[points_class] => 5
[moto_nbr] => 16
)
[1] => Array
(
[racer_id] => 1143
[event_id] => 326
[class_type] => Y
[points_class] => 5
[moto_nbr] => 16
)
)
[10] => Array
(
[0] => Array
(
[racer_id] => 421
[event_id] => 326
[class_type] => A
[points_class] => 10
[moto_nbr] => 19
)
[1] => Array
(
[racer_id] => 1219
[event_id] => 326
[class_type] => A
[points_class] => 10
[moto_nbr] => 19
)
)
)
Können Sie das näher erläutern, was als nächstes zu einem anderen ein race_track ist? –
Hallo, @indymx möchten Sie Rennfahrer-IDs mit der ID einer Klasse vergleichen. zum Beispiel die erste Klasse ID 17 hat 4 Untereinträge, also wollen Sie diese vier miteinander vergleichen und so weiter für die nächste Klassen ID ... ?? –
Juan eine Rennstrecke ist eine Einrichtung für Rennmotorräder. – indymx