2016-08-03 4 views
-1

Wie kann ich das ganze $rr durch seinen Wert in $rr[xx]->label als aufsteigende Reihenfolge sortieren?PHP - Wie sortiere ich das komplette Array nach einem Array-Wert?

$result=curl_exec ($ch); 
$rr = json_decode($result);  
foreach($rr as $k=>$v) { 
    echo $v->label . ' - ' . $v->id . '<Br/>'; 
} 

Ausgang:

Oman - 500 
Uk - 99 
America - 100 
Denmark - 120 

Erwartete Ausgabe (nach Hersteller sortiert):

America - 100 
Denmark - 120 
Oman - 500 
Uk - 99 
+1

[ 'usort'] (http: // php .net/usort) –

+1

http://php.net/array_multisort Scrollen Sie nach unten zu e Beispiel # 3 – Bert

+1

@Bert Multisort ist komplexer als nötig. Nur eine Codezeile würde funktionieren: 'usort ($ rr, Funktion ($ a, $ b) {return $ a-> label> $ b-> label;});' Siehe diese Demo: https: // 3v4l. org/AKOPl – BeetleJuice

Antwort

2
<?php 
    $arr= array("Oman"=>"500","uk"=>"99","America "=>"100","Denmark "=>"120"); 
    ksort($arr); 

    foreach($arr as $x => $x_value) { 
    echo "Key=" . $x . ", Value=" . $x_value; 
    echo "<br>"; 
    } 
?> 

Verwenden ksort - sorts an associative array in ascending order, according to the value

+0

Also zuerst: '$ rr = json_decode ($ result); Mach das Ksort; und dann $ rr = json_encode ($ rr); echo $ rr; 'damit Javascript nun diese sortierte Ausgabe verwenden kann? – YumYumYum