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

时间:2013-11-06 16:11:30

标签: php arrays sorting

我已经按行价分类了一系列旅游产品。 我想在列表末尾以价格= 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]);

            }

        }

2 个答案:

答案 0 :(得分:3)

那将是:

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

答案 1 :(得分:2)

有一个更清洁的解决方案:

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