Es muss nicht zwingend eine DB sein, auch wenn die wahrscheinlich die beste Wahl wäre.
Es geht prinzipiell in der Anwendung erst mal nur darum, eine Datenstruktur zur Ablage einer Fahne/eines Bilds zu schaffen. Ob diese Datenstruktur dann direkt im Code gefüllt wird oder mit den Datensätzen einer Datenbank oder zeilenweise aus einer Textdatei, ist egal.
[php]<?php
/**
*
*/
function loadDataCsv($file)
{
if (($handle = fopen($file, ‚r‘)) === false) {
throw new Exception(‚Datei konnte nicht geöffnet werden‘);
}
$flags = array();
while (($data = fgetcsv($handle, 0, ',')) !== false) {
$flags[] = array(
'name' => $data[0],
'plz' => (int) $data[1]
);
}
fclose($handle);
return $flags;
}
/**
*
*/
function printFlags(array $flags)
{
foreach ($flags as $flag) {
printf(„Name: %s Postleitzahl: %d\n“, $flag[‚name‘], $flag[‚plz‘]);
}
}
/**
*
*/
function filterFlags(array $flags, array $criteria)
{
$filteredFlags = array();
foreach ($flags as $flag) {
foreach ($criteria as $key => $value) {
if ($flag[$key] !== $value) {
continue 2;
}
}
$filteredFlags[] = $flag;
}
return $filteredFlags;
}
$flags = loadDataCsv(‚flags.csv‘);
echo ‚Folgende Fahnen wurden eingelesen:‘, „\n\n“;
printFlags($flags);
echo „\n“;
echo ‚Nur die mit PLZ=12345 ausgeben:‘, „\n\n“;
$criteria = array(‚plz‘ => 12345);
$filteredFlags = filterFlags($flags, $criteria);
printFlags($filteredFlags);
echo „\n“;
echo ‚Nur die mit Name=„Fahne drei“ und PLZ=54321 ausgeben:‘, „\n\n“;
$criteria = array(
‚name‘ => ‚Fahne drei‘,
‚plz‘ => 54321
);
$filteredFlags = filterFlags($flags, $criteria);
printFlags($filteredFlags);
echo „\n“;
/* Beispielinhalt von flags.csv:
Fahne eins,12345
Fahne zwei,12345
Fahne drei,54321
Fahne vier,54321
*/
/* Ausgabe:
Folgende Fahnen wurden eingelesen:
Name: Fahne eins Postleitzahl: 12345
Name: Fahne zwei Postleitzahl: 12345
Name: Fahne drei Postleitzahl: 54321
Name: Fahne vier Postleitzahl: 54321
Nur die mit PLZ=12345 ausgeben:
Name: Fahne eins Postleitzahl: 12345
Name: Fahne zwei Postleitzahl: 12345
Nur die mit Name=„Fahne drei“ und PLZ=54321 ausgeben:
Name: Fahne drei Postleitzahl: 54321
*/[/php]