ksort nach $value verzwickte Sache!

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • ksort nach $value verzwickte Sache!

    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?

    PHP-Code:
    $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
    Zuletzt geändert von petro_0; 29.08.2006, 21:27.
    gruss pedro

  • #2
    Re: ksort nach $value verzwickte Sache!

    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.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      PHP-Code:
      function comp($a,$b){
          if(
      $a['REFERENCE_TIME'] == $b['REFERENCE_TIME']){
              return 
      0;
          }
           return (
      $a['REFERENCE_TIME'] < $b['REFERENCE_TIME']) ? -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
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar

      Lädt...
      X