Hello,
ich habe ein zweidimensionales array:
$imagesToImport = array();
das fülle ich in einer Schleife mit Inhalten:
...
$imagesToImport[$imageCounter]["img_name_original"] = $file;
$imagesToImport[$imageCounter]["date"] = $date;
$imagesToImport[$imageCounter]["time"] = $time;
...Nun muß ich es sortieren und zwar nach "time", diese Felder haben das Format "hh:mm:ss".
Bei diesen Aufgabenstellungen kann ich nur immer wieder fragen: warum organisierst Du die Struktur des Arrays nicht anders herum? Dann kannst Du jede "Spalte" mit den vorhandenen Array-Funktionen behandeln, also sortieren, Summen bilden, Minimum, Maximum, Durchschnitt, und was es sonst noch alles gibt.
$imagesToImport["img_name_original"][$imageCounter] = $file;
$imagesToImport["date"][$imageCounter] = $date;
$imagesToImport["time"][$imageCounter] = $time;
Die Äste dieser Struktur korrespondieren nun über den [$imageCounter] miteinander und man benötigt nur ein paar kleine universelle Funktionen, um mit den "Datensätzen" arbeiten zu können.
Die Funktionen lassen sich für alle derart organisierten Strukturen immer wieder verwenden.
Vorteil ist aber, dass für alle normalen Anwendungsfälle die vorhandenen Arrayfunktionen verwendet werden können.
Um ein solches Array z.B. sortiert nach einer "Spalte" auszugeben, muss man nur diese Spalte mit der gewünschten Sortierfunktion sortieren und dann ein foreach() über den Key der Spalte fahren mit der get_record()-Funktion.
#------------------------------------------------------------------------------
function get_record (&$_data, $recno)
{
$_rec = array();
foreach ($_data as $colname => $field)
{
$_rec[$colname] = isset($_data[$colname][$recno])?$_data[$colname][$recno]:NULL;
}
return $_rec;
}
#------------------------------------------------------------------------------
function delete_record (&$_data, $recno)
{
$cols_deleted = 0;
foreach ($_data as $colname => $field)
{
unset($_data[$colname][$recno]);
$cols_deleted++;
}
return $cols_deleted;
}
#------------------------------------------------------------------------------
function update_record(&$_data, $recno, $_record, $expand=false)
{
$cols_updated = 0;
foreach ($_record as $colname => $data)
{
if ($expand or isset($_data[$colname][$recno]))
{
$_data[$colname][$recno] = $data;
$cols_updated++;
}
}
return $cols_updated;
}
#------------------------------------------------------------------------------
function insert_record(&$_data, $recno, $_record, $expand=false, $overwrite=false)
{
$cols_inserted = 0;
if (!$overwrite)
{
foreach($_record as $colname => $data)
{
if (isset($_data[$colname][$recno]))
{
return 0;
}
}
}
foreach ($_record as $colname => $data)
{
if ($expand or isset($_data[$colname]))
{
$_data[$colname][$recno] = $data;
$cols_inserted++;
}
}
return $cols_inserted;
}
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg