PHP :在数组末尾移动具有特定属性值的元素


php : move an element having a certain attribute value at the end of the array

>我按价格对一系列旅游产品进行了排序。我想在列表末尾移动价格 = 0 的产品。

这是我尝试过的:

        for($i = 0; $i < count($mes_voyages); ++$i) {
            if($mes_voyages[i]['prix']==0) 
            {
                array_push($mes_voyages,$mes_voyages[i]);
                unset($mes_voyages[i]);
            }
        }

所以这将是:

$mes_voyages = array_merge(
   array_filter($mes_voyages, function($item){ return $item['prix']!=0; }),
   array_filter($mes_voyages, function($item){ return $item['prix']==0; })
);

有一个更干净的解决方案:

usort($mes_voyages, function($a,$b) {
     if ($a["prix"] === 0 && $a["prix"] != $b["prix"]) return 1;
});