Nach Array-Sortierung einträge weg

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Original geschrieben von Picard
    Und was mache ich wenn ein Name mehrfach vorkommt
    Genauso dumm schauen, wie vorher in dem Fall, dass die Zahl nicht eindeutig war ...?

    Also wie muss nun mein Array aussehen und wie muss ich sortieren ?
    Bau's zweidimensional auf, wie vorgeschlagen - und nutze dann usort.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Comment


    • #17
      PHP Code:
       ...
      function 
      compare $a$b ) {
         return ( 
      $a ] == $b ] ) ? : ( ( $a ] < $b ] ) ? -);
      }

      usort $array_namen'compare' ); 
      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

      Comment


      • #18
        Also nochmal zum Verständnis:

        Array so aufbauen:

        PHP Code:
        $namen = array
        (
            [
        0] => Array
                (
                    [
        0] => 3423
                    
        [1] => keine Ahung mehr
                
        )

            [
        1] => Array
                (
                    [
        0] => 1434
                    
        [1] => und noch weniger
                
        )
            [
        2] => Array
                (
                    [
        0] => 3423
                    
        [1] => und noch weniger
                
        )


        und so sortieren:

        PHP Code:
        $namen usort($namencmp); 
        richtig ?

        EDIT:
        Inzwischen hat tontechniker wieder was gepostst und nun bin ich wieder irritiert ?!

        Comment


        • #19
          So wie ich es gerade gepostet habe ...
          EDIT:
          PHP Code:
           $array_namen = array ( ... );
          function 
          compare $a$b ) {
             return ( 
          $a ] == $b ] ) ? : ( ( $a ] < $b ] ) ? -);
          }

          usort $array_namen'compare' );
          print_r $array_namen ); 
          Klick doch endlich mal auf die Manualseiten die gepostet werden.

          Last edited by tontechniker; 01-05-2007, 15:22.
          Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

          Comment


          • #20
            Original geschrieben von tontechniker
            So wie ich es gerade gepostet habe ...
            EDIT:
            PHP Code:
             $array_namen = array ( ... );
            function 
            compare $a$b ) {
               return ( 
            $a ] == $b ] ) ? : ( ( $a ] < $b ] ) ? -);
            }

            usort $array_namen'compare' );
            print_r $array_namen ); 
            Klick doch endlich mal auf die Manualseiten die gepostet werden.

            Sorry wenn ich jetzt so blöde Frage, ... aber wie genau muss ich mir jetzt mein array bauen ? Bekomme es irgendwie nicht passend hin.

            gruß Picard

            Comment


            • #21
              die frage ist nicht blöd, sie wurde einfach schon mal beantwortet.

              Comment


              • #22
                PHP Code:
                array ( array ( 1234'blubb' ), array ( 4321'bbulb' ) ); 
                Was bekommst du daran nicht passend hin?
                Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                Comment


                • #23
                  Original geschrieben von tontechniker
                  PHP Code:
                  array ( array ( 1234'blubb' ), array ( 4321'bbulb' ) ); 
                  Was bekommst du daran nicht passend hin?
                  Naja, ... habe es nun so gemacht wir du geschrieben hast und mein Array sieht nach dem print_r folgendermaen aus:

                  PHP Code:
                  Array
                  (
                      [
                  0] => Array
                          (
                              [
                  0] => 4100
                              
                  [1] => Sowas von keine Ahnung
                          
                  )

                      [
                  1] => Array
                          (
                              [
                  0] => 9999
                              
                  [1] => ein weiterer Name
                          
                  )

                      [
                  2] => Array
                          (
                              [
                  0] => 7000
                              
                  [1] => Hier bin ich
                          
                  )

                      [
                  3] => Array
                          (
                              [
                  0] => 1
                              
                  [1] => Hallo Welt
                          
                  )

                  also nichts von sortierung erkennbar.

                  gruß Picard

                  Comment


                  • #24
                    fehlt nur noch die anweisung zum sortieren

                    Comment


                    • #25
                      Original geschrieben von penizillin
                      fehlt nur noch die anweisung zum sortieren
                      Sehr witzig, habe ja folgendes vor dem print_r() eingebaut:

                      function compare ( $a, $b ) {
                      return ( $a [ 1 ] == $b [ 1 ] ) ? 0 : ( ( $a [ 1 ] < $b [ 1 ] ) ? -1 : 1 );
                      }
                      usort ( $names, 'compare' );

                      EDIT:

                      Was hab ich denn nun falsch gemacht ?

                      Last edited by Picard; 01-05-2007, 16:25.

                      Comment


                      • #26
                        wenn du nach dem namen vergleichst, brauchst du strcmp() statt "kleiner" oder "größer".

                        Comment


                        • #27
                          Original geschrieben von penizillin
                          wenn du nach dem namen vergleichst, brauchst du strcmp() statt "kleiner" oder "größer".
                          Ich brauch ja die Reihenfolge der Namen anhand der größe der Zahlen, sprich sortiert sähe das so aus:

                          Hallo = 1234
                          Apfel = 1548
                          Gammelfleisch = 2001

                          Also wo ist der Fehler ?

                          gruß Picard

                          Comment


                          • #28
                            Original geschrieben von Picard
                            Ich brauch ja die Reihenfolge der Namen anhand der größe der Zahlen [...]
                            Also wo ist der Fehler ?
                            Der Fehler ist, dass du die gepostete Vergleichsfunktion stupide übernommen hast, anstatt sie dir mal mit Verstand anzuschauen.

                            Sonst hättest du nämlich bemerkt, dass sie jeweils die zweiten Elemente zweiter Array-Einträge vergleicht - du willst aber die ersten vergleichen, also solltest du die Funktion dahingehend anpassen.
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Comment

                            Working...
                            X