我在PHP中有这个数组:
在PHP API中,我有这个数组,想要按custom_price进行排序,但是没有得到如何实现...
Array
(
[0] => Array
(
[id] => 1204
[custom_price] => 33.1500
)
[1] => Array
(
[id] => 1199
[custom_price] => 16.83
)
[2] => Array
(
[id] => 1176
[custom_price] => 16.83
)
[3] => Array
(
[id] => 1173
[custom_price] => 11.73
)
[4] => Array
(
[id] => 1170
[custom_price] => 22.5
)
)
我如何从高到低排序&从低到高..通过custom_price
答案 0 :(得分:0)
使用 Ksort
$age=array("1204"=>"33.1500","1199"=>"16.83","1176"=>"11.73");
ksort($age);
foreach($age as $x=>$x_value)
{
echo "Value=" . $x_value;
echo "<br>";
}
输出
Value=11.73
Value=16.83
Value=33.1500
提示:使用krsort()函数根据键以降序对关联数组进行排序。
提示:使用asort()函数根据值按升序对关联数组进行排序。
答案 1 :(得分:0)
使用usort
:
从高到低
usort($input, function ($a, $b) {return $a['custom_price'] < $b['custom_price'];});
print_r( $input );
从低到高
usort($input, function ($a, $b) {return $a['custom_price'] > $b['custom_price'];});
print_r( $input );
答案 2 :(得分:0)
// Descending order
function sortByDecOrder($a, $b) {
return $b['custom_price'] - $a['custom_price'];
}
usort($arr, 'sortByOrder');
// Ascending order
function sortByAscOrder($a, $b) {
return $b['custom_price'] - $a['custom_price'];
}
usort($arr, 'sortByOrder');
答案 3 :(得分:0)
此解决方案可能会对您有所帮助。
function sortByOrder($a, $b) {
return $a['custom_price'] - $b['custom_price'];
}
usort($myArray, 'sortByOrder');
或者
function aasort (&$array, $key) {
$sorter=array();
$ret=array();
reset($array);
foreach ($array as $ii => $va) {
$sorter[$ii]=$va[$key];
}
asort($sorter);
foreach ($sorter as $ii => $va) {
$ret[$ii]=$array[$ii];
}
$array=$ret;
}
aasort($your_array,"custom_price");
这里是参考link
答案 4 :(得分:0)
您可以使用usort
功能
<?php
$array = array(
"0" => array (
"id" => 1204,
"custom_price" => 33.1500
),
"1" => array (
"id" => 1199,
"custom_price" => 20.83
),
"2" => array (
"id" => 1176,
"custom_price" => 19.83
)
);
usort($array, function($a, $b) {
return $a['custom_price'] - $b['custom_price'];
});
echo "<pre>";
print_r($array);
答案 5 :(得分:0)
将
一起使用array_multisort()
与SORT_DESC
和SORT_ASC
<?php
$MYarray=
array(
0 => array(
"id"=> 1204,
"custom_price"=> 33.1500
),
1 => array(
"id"=> 1199,
"custom_price"=> 16.83
),
2 => array(
"id"=> 1176,
"custom_price"=> 316.83
));
$custom_price = array();
foreach ($MYarray as $key => $row)
{
$custom_price[$key] = $row['custom_price'];
}
array_multisort($custom_price, SORT_DESC, $MYarray);
var_dump($MYarray);
?>