3 回答

TA贡献1868条经验 获得超4个赞
array_multisort()
.
$price = array();foreach ($inventory as $key => $row){ $price[$key] = $row['price'];}array_multisort($price, SORT_DESC, $inventory);
从PHP5.5.0开始,您可以使用Array_Column()代替这个foreach
$price = array_column($inventory, 'price');array_multisort($price, SORT_DESC, $inventory);

TA贡献2003条经验 获得超2个赞
PHP 7+
usort
usort($inventory, function ($item1, $item2) { return $item1['price'] <=> $item2['price'];});
usort($inventory, function ($item1, $item2) { return $item2['price'] <=> $item1['price'];});
usort
如果第一个参数被认为分别小于、等于或大于第二个参数,则比较函数必须返回小于、等于或大于零的整数。
<=>
如果两个操作数相等,则返回0,如果左大于1,则返回-1,如果右侧较大,则返回-1。
usort
<=>
使编写顺序回调用于 usort()
更容易
PHP 5.3+
usort
usort($inventory, function ($item1, $item2) { if ($item1['price'] == $item2['price']) return 0; return $item1['price'] < $item2['price'] ? -1 : 1;});
$item2['price'] - $item1['price']
usort
usort
回归 非整数比较函数(如Float)中的值将导致回调返回值的内部强制转换为整数。因此,0.99和0.1这样的值都将转换为0的整数值,这将比较这些值是否相等。
usort

TA贡献1765条经验 获得超5个赞
array_multisort()
array_column()
array_multisort(array_column($inventory, 'price'), SORT_DESC, $inventory);
- 3 回答
- 0 关注
- 676 浏览
添加回答
举报