Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
ksort nach $value verzwickte Sache! [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
ksort nach $value verzwickte Sache!


 
petro_0
29-08-2006, 20:23 
 
Guten abend,

ich möchte gerne eine Sortierung von einem Zweidimensionalen Array vornehmen!Es soll alles nach $value[REFERENCE_TIME] sorrtiert werden. Es soll praktisch ALLES nach Datum sortiert werden! Leider klappt es so wie UNTEN beschrieben nicht und weis nicht wie ich vorgehen muss!

Kann mir jemand helfen wie ich vorgehen muss?


$erg = $xml_1->output();
foreach ($erg as $val) {
ksort ($val);
foreach ($val as $value) {

$log_output .= "<tr><td>{$value[REFERENCE_TIME]}</td>" .
"<td>{$value[DURATION]}</td><td>{$value[ERROR_CODE]}</td>" .
"<td>{$value[CONFORMED_CALLING_NUMBER]}</td><td>{$value[CONFORMED_CALLED_NUMBER]}</td>" .
"<td>{$value[CALLING_IMEI]}</td><td>{$value[CALLED_IMEI]}</td>" .
"<td>{$value[DIALLED_DIGITS]}</td><td>{$value[CALL_REFERENCE]}</td></tr>";
}
}


...und so sieht mein Array per print_r aus!!

Array
(
[1] => Array
(
[CALLTYPE] => MOC
[REFERENCE_TIME] => 2006-08-24 17:34:44.0
[DURATION] => 190
[ERROR_CODE] => 16
[CONFORMED_CALLING_NUMBER] => 491791234567
[CONFORMED_CALLED_NUMBER] => 49180123456
[CALLING_IMEI] => -1
[CALLED_IMEI] => -1
[DIALLED_DIGITS] => 01123456
[CALL_REFERENCE] => 4805
)

Gruss Petro

 
wahsaga
29-08-2006, 21:27 
 
Original geschrieben von petro_0
Es soll alles nach $value[REFERENCE_TIME] sorrtiert werden.
Was willst du dann mit ksort, welches nach den Schlüsseln sortiert?

Nutze usort.

 
jahlives
30-08-2006, 07:56 
 
function comp($a,$b){
if($a['REFERENCE_TIME'] == $b['REFERENCE_TIME']){
return 0;
}
return ($a['REFERENCE_TIME'] < $b['REFERENCE_TIME']) ? -1 : 1;
}
usort($array,'comp');
var_dump($array);

So sollten die Werte nach dem Feld REFERENCE_TIME sortiert werden. Wenn es so nicht direkt funzt müsstest du noch strtotime() auf das Feld anwenden, damit ein Unix Zeitstempel ensteht, den man einfach vergleichen kann. Imho müsste es aber auch mit dem von dir angegebenen Datumsformat funzen.

Gruss

tobi

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:19 Uhr.