Array (mehrdimensional) sortieren

Alles, was PHP betrifft, kann hier besprochen werden.

Array (mehrdimensional) sortieren

Postby I-c-H » 07. October 2008 19:56

Hi,

ums mal einfach zu machen,
ich habe ein Array mit folgendem Aufbau:


Code: Select all
$a[0]['Wert']="Hi";
$a[0]['Zähler']="1";

$a[1]['Wert']="Hi1";
$a[1]['Zähler']="2";


$a[2]['Wert']="Hi2";
$a[2]['Zähler']="4";

$a[3]['Wert']="Hi3";
$a[3]['Zähler']="4";

$a[4]['Wert']="Hi4";
$a[4]['Zähler']="5";


Ich möchte nun, dass die "Werte" dem Zähler entsprechend (absteigend) geordnet ausgegeben werden. Als erstes müsste nun also "Hi4" ausgegeben werden.
Mit array_multisort(); klappt das ganze schon mal nicht.

Hat jemand eine Idee?

Dankeschön!
I-c-H
 
Posts: 24
Joined: 20. July 2008 16:20

Postby Xardas der Dunkle » 07. October 2008 20:15

http://de3.php.net/manual/de/function.usort.php

Code: Select all
<?php
$a[0]['Wert']="Hi";
$a[0]['Zaehler']=1;

$a[1]['Wert']="Hi1";
$a[1]['Zaehler']=2;


$a[2]['Wert']="Hi2";
$a[2]['Zaehler']=4;

$a[3]['Wert']="Hi3";
$a[3]['Zaehler']=4;

$a[4]['Wert']="Hi4";
$a[4]['Zaehler']=5;

function mySort($a, $b) {
    if($a['Zaehler'] < $b['Zaehler']) {
        return  1;
    } elseif($a['Zaehler'] > $b['Zaehler']) {
        return -1;
    } else {
        return  0;
    }
}

usort($a, 'mySort');

echo '<pre>', print_r($a, true), '</pre>';
User avatar
Xardas der Dunkle
 
Posts: 482
Joined: 09. March 2008 19:40
Location: /var/www


Return to PHP

Who is online

Users browsing this forum: No registered users and 6 guests