前幾天在專案中碰到了乙個問題,在做**的時候,要對乙個店鋪裡所有商品進行**排序,而且每一種商品都擁有多個規格,要取到所有商品中所有規格的最低價和最**,發現php有很友好的函式幫助我們進行篩選。
使用array_multisort函式進行二維陣列排序:
陣列格式如下:
$goods = array(0 => array(
「id」=>1,
「tag」=>array(
「price」=>」10」,
「old_price」=>」20」)),
1 => array(
「id」=>2,
「tag」=>array(
「price」=>」30」,
「old_price」=>」100」)),
2 => array(
「id」=>3,
「tag」=>array(
「price」=>」25」,
「old_price」=>」70」)),
3 => array(
「id」=>4,
「tag」=>array(
「price」=>」15」,
「old_price」=>」50」))
);
$goods是個商品集合,每乙個商品帶有乙個id,
tag是該商品的規格,
price
是商品的售價,
old_price
是商品的原價,先在要對商品的售價進行排序,並取出最高售價和最低售價。
$sort_arr = array();foreach($goods as $key => &$val))
foreach($val[『goods_arr』] as $v)
array_multisort($sort_arr_sort,sort_asc,$val['goods_arr']);
$val['price_min'] = $val['goods_arr'][0]['price'];
$val['old_price_min'] = $val['goods_arr'][0][『old_price』];
array_multisort($discount_sort,sort_desc,$val['goods_arr']);
$val['price_max'] = $val['goods_arr'][0]['price'];
$val['old_price_max'] = $val['goods_arr'][0]['old_price'];
}
這樣就取到了該店鋪中商品集合裡每一種商品的最低售價和最高售價,在做乙個店鋪展示的時候也會得到每件商品的**區間了。
by as
PHP二維陣列排序
php經過長時間的發展,很多使用者都很了解它了,上網收集了一些關於php二維陣列的相關知識,這裡和大家一起分享一下,php本身是有乙個多維陣列排序的函式的。bool array multisort array ar1 mixed arg mixed array 下面是手冊當中對於array mult...
PHP二維陣列排序
對二維陣列進行排序 模擬 資料表記錄按欄位排序 list order list,get orderkey get ordertype param array array 要排序的陣列 param string orderkey 排序關鍵字 字段 param string ordertype 排序方式...
php 二維陣列排序
寫乙個二維陣列排序演算法函式,能夠具有通用性,可以呼叫php內建函式 二維陣列排序,arr是資料,keys是排序的健值,order是排序規則,1是公升序,0是降序 function array sort arr,keys,order 0 keysvalue array foreach arr as ...