獲取用戶個(gè)人的物品類型側(cè)菜單欄
- 功能要求描述
現(xiàn)在項(xiàng)目涉及物品的類型美莫,其實(shí)是無(wú)限級(jí)分類的處理嗓蘑,但是項(xiàng)目要求不僅要獲取所有的物品類型的分類的無(wú)限級(jí)展示塘砸,還要可以獲取到用戶個(gè)人的無(wú)限級(jí)分類扼倘。 - 面臨問(wèn)題
用戶發(fā)布物品時(shí)遇绞,選擇物品類型嗓奢,其實(shí)前端提交的是類型的typeId,如果用戶選擇了類型中的子分類讼撒,其中所有的美物中都未涉及此子分類的父級(jí)分類,想要使所有的分類可以在前端顯示時(shí),有一級(jí)根盒,二級(jí)等標(biāo)題之分钳幅,要使用無(wú)限級(jí)分類的函數(shù)進(jìn)行處理時(shí),但針對(duì)此情況就會(huì)發(fā)生數(shù)據(jù)的丟失炎滞。 - 問(wèn)題解決
思路:先通過(guò)連表查詢獲取用戶的所有物品類型敢艰,之后遍歷數(shù)據(jù)或許兩個(gè)id的數(shù)組$pid[],$child[],這樣就獲取了所有物品類型中,無(wú)父級(jí)類型的子類型册赛。之后在$pid[]中去掉==0的情況钠导,之后合并兩個(gè)數(shù)組,再array_unique的數(shù)組森瘪,之后獲取仔獲取所有信息牡属,之后再使用無(wú)限級(jí)分類函數(shù)。問(wèn)題就可以解決了扼睬!
$typesInfo=$type->field('a.*')->alias('a')->join('LEFT JOIN cu_collection b ON b.typeId=a.typeId')
->group('a.typeId')->where(array('userId'=>$userId))->select();
/**
* 1.在添加美物類型時(shí)逮栅,會(huì)只選到子類型,并無(wú)父級(jí)類型
* 2.之后循環(huán)遍歷窗宇,取得父類型
*/
foreach($typesInfo as $item) {
$pid[]= $item['pid'];
$chilid[]=$item['typeid'];
}
//去除id==0
foreach($pid as $k=>$v){
if($v==0){
unset($pid[$k]);
}
}
$mergeId=array_merge($pid,$chilid);
$resultId=array_unique($mergeId);
foreach($resultId as $item){
$resultType[]=$type->where(['typeid='.$item])->find();
}
//對(duì)獲取的類別進(jìn)行一級(jí)二級(jí)的展示
$result=$this->resort($resultType);
問(wèn)題解決中學(xué)到的知識(shí)點(diǎn)
- PHP數(shù)組函數(shù)序列之a(chǎn)rray_unique() - 去除數(shù)組中重復(fù)的元素值
- PHP刪除一維數(shù)組中某一個(gè)值元素的操作 unset()
http://www.jb51.net/article/39401.htm
使用array_splice()刪除特定值和使用unset刪除特定值是有區(qū)別的措伐。
array_splice()函數(shù)刪除的話,數(shù)組的索引值也變化了军俊。
unset()函數(shù)刪除的話侥加,數(shù)組的索引值沒(méi)有變化。
<?php
$arr1 = array(1,3, 5,7,8);
$key = array_search(3, $arr1);
if ($key !== false)
array_splice($arr1, $key, 1);
var_dump($arr1);
?>
輸出為:
array(4) { [0]=> int(1) [1]=> int(5) [2]=> int(7) [3]=> int(8) }
- PHP array_push() 函數(shù) array_push()
函數(shù)向第一個(gè)參數(shù)的數(shù)組尾部添加一個(gè)或多個(gè)元素(入棧)蝇完,然后返回新數(shù)組的長(zhǎng)度官硝。
該函數(shù)等于多次調(diào)用 $array[] = $value。
終于解決了一個(gè)困擾我好久的一個(gè)問(wèn)題短蜕,開(kāi)心氢架,好好學(xué)習(xí),天天向上朋魔,是對(duì)的a小!警检!
總結(jié)
2017年7月30日 好好學(xué)習(xí)孙援,天天向上,今天也是扇雕。