php數組排序

無限極分類裏面有時候你須要使用遞歸來將pid替換爲對應的上級分類的名稱,提升程序的友好度。php

/**
     * 給pid添加名稱
     * pid爲零即頂級欄目
     * 不爲零找出對應欄目id將此欄目名稱賦給下級欄目
     * @param $data
     * @return array
     */
    protected function addPidName($data)
    {
        static $ret=array();

        foreach($data as $k=>$v){
            if($v['pid'] != 0){
                foreach ($data as $k1=>$v1){
                    if ($v['pid'] == $v1['catId']){
                        $v['pname'] = $v1['name'];
                        $ret[] = $v;
                        break;//爲節約資源,達到目標就中止循環
                    }
                }
            }else{
                $v['pname'] = '頂級欄目';
                $ret[] = $v;
            }
        }
        $ret = array_reverse($ret);//foreach後得出數組爲反序,須要再次逆排
        return $ret;
    }

另附上php經常使用排序函數:數組

  • sort() - 以升序對數組排序
  • rsort() - 以降序對數組排序
  • asort() - 根據值,以升序對關聯數組進行排序
  • ksort() - 根據鍵,以升序對關聯數組進行排序
  • arsort() - 根據值,以降序對關聯數組進行排序
  • krsort() - 根據鍵,以降序對關聯數組進行排序
相關文章
相關標籤/搜索