Ik heb mijn eigen array opgebouwd met array_push en wil daarna alles sorteren op prijs en dan printen.
Er zijn veel methodes te vinden op internet maar krijg het niet werkende in de praktijk ( array_multisort(), asort(), sort() )
Zijn er experts aanwezig die hier ervaring mee hebben en mij kunnen helpen ?
Het is eigenlijk vrij simpel, maar de namen zijn vrij moeilijk:
[php]sort[/php] - De basis sort functie, deze sorteert op value van laagste tot hoogste (0 - 9, a - z, etc.)
[php]rsort[/php] - De basis sort, maar dan andersom (de "r" prefix komt van "reverse")
[php]ksort[/php] - Zelfde als basis sort, maar dan met keys ipv values (vandaar de "k" prefix)
[php]krsort[/php] - Combinatie van rsort en ksort
[php]asort[/php] - Basis sort functie, maar dan blijven de array keys intact (dus array([1] => 3, [2] => 2) wordt array([2] => 2, [1] => 3)). De "a" prefix komt van assoctiative.
[php]arsort[/php] - Combinatie van asort en rsort
[php]usort[/php] - Een sort functie die een functie gebruikt om te sorteren (de "u" van "user function")
[php]uasort[/php] - Combinatie van asort en usort
[php]uksort[/php] - Combinatie van ksort en usort
In jouw geval wil je een user defined sort functie definiƫren, om op die manier de prijzen te vergelijken:
<?php
$products = array(...);
usort($products, function ($productA, $productB) {
if ($productA['price'] === $productB['price']) {
return 0; // prijzen zijn gelijk, laat de elementen zo staan
}
if ($productA['price'] > $productB['price']) {
return 1; // prijs A is groter dan prijs B, verplaats A dus na B
}
return -1; // prijs A is kleiner dan prijs B, verplaats A dus voor B
});
?>
Ik heb met str_replace('$', '', $val); de '$' weg kunnen halen. https://dl.dropboxusercontent.com/u/358029804/prices.json
Maar na het gebruiken van de functie lukt het nog steeds niet, hier de code :
<?php
function cmp($a, $b)
{
return $a['price'] - $b['price'];
}