AW: Multidimensionale Arrays zusammen fügen und sortieren
Hallo,
wenn ich Dich recht verstanden habe, willst Du aus zwei zweidimensionalen Array ein array machen. Die Daten von den 'Objekten' sind in diesen zwei Arrays und sollen zusammen gefügt werden und anschließend nach einem bestimmten 'Objekt'-Key sortiert werden.
ACHTUNG: die ScriptSnippsle sind nicht getestet ;)
zwei Arrays verbinden:
$myMArray = array_merge_recursive ($a1,$a2);
Sortieren:
V1: sortieren nach 'creation_time' und
DANACH '###_creation_time' (wenn 'creation_time' gleich ist)
mit array_multisort()
foreach ($myMArray as $key => $row) {
$ctime[$key] = $row['creation_time'];
$ctimeX[$key] = $row['###_creation_time'];
}
array_multisort($ctime, SORT_ASC, $ctimeX, SORT_ASC, $myMArray);
V2: sortieren nach 'creation_time' und '###_creation_time',
wobei der NIEDRIEGERE Wert von beiden benutzt wird:
V2 1.) zusätzlichen Key erzeugen :
// niedrieger Wert von 'creation_time' oder '###_creation_time'
// wird in neuen Key'mytime' geschrieben:
function createKeyMyTime($list){
//$list enthält das 'subarray', 'Objekt'
$myTime = '0';
if(array_key_exists('creation_time',$list)){
$myTime = $list['creation_time'];
}
if(array_key_exists('###_creation_time',$list)
AND $list['###_creation_time'] < $myTime){
$myTime = $list['###_creation_time'];
}
$list['myTime'] = $myTime;
}
array_map('createKeyMyTime',$myMArray);
V2 1.) sortieren des gesamten Array nach neuem Key 'myTime':
mit array_multisort()
foreach ($myMArray as $key => $row) {
$myTimeList[$key] = $row['myTime'];
}
array_multisort($myTimeList, SORT_ASC, $myMArray);
|