Im trying to organize this kind of array
array
0 =>
array
'id' => '19'
'nome' => 'Lorem ipsum'
'order' => '0'
1 =>
array
'id' => '23'
'nome' => 'Lorem ipsum'
'order' => '2'
2 =>
array
'id' => '45'
'nome' => 'Lorem ipsum'
'order' => '0'
3 =>
array
'id' => '6'
'nome' => 'Lorem ipsum'
'order' => '0'
4 =>
array
'id' => '23'
'nome' => 'Lorem ipsum'
'order' => '1'
5 =>
array
'id' => '12'
'nome' => 'Lorem ipsum'
'order' => '0'
So, I have to put the zeros values in order to the end of the array, and using others order values to ordering correctely the array.
array
0 =>
array
'id' => '23'
'nome' => 'Lorem ipsum'
'order' => '1'
1 =>
array
'id' => '23'
'nome' => 'Lorem ipsum'
'order' => '2'
2 =>
array
'id' => '19'
'nome' => 'Lorem ipsum'
'order' => '0'
3 =>
array
'id' => '45'
'nome' => 'Lorem ipsum'
'order' => '0'
4 =>
array
'id' => '6'
'nome' => 'Lorem ipsum'
'order' => '0'
5 =>
array
'id' => '12'
'nome' => 'Lorem ipsum'
'order' => '0'
I tried using usort like this, with not the correct result:
usort($items, function() {
if ($a['uf_order'] == 0) return 0;
return ($a['uf_order'] > $b['uf_order']) ? -1 : 1;
});
You have to pass
$aand$bin the function:Also there is no key called
uf_orderin your array.As NomikOS correctly stated in his comment. This would only work in PHP 5.3+. If you have an older version of PHP you could do: