PHP列表一次性讀取字段信息

/**
  * 取回一個相關數組,第一個字段值爲碼,第二個字段爲值
  * @param int   $field 要尋找的兩個字段
  * @param array $where 查詢條件
  * @return array
  */
public function fetchPairs($field , $where = array())
{
     $where['terminalId'] = get_terminalId();
     $results = $this->findAll($where,$field);
     $data = array();
     if(is_array($results) && count($results) > 0) {
         foreach ($results AS $value) {
             $data[$value[$field[0]]] = $value[$field[1]];
         }
         return $data;
     } else {
         return false;
     }
}

/**
* 獲取二維數組中的某個鍵值,並鍵值惟一
* @param array $input 二維數組
* @param string $columnKey 數組的鍵
* @param string $indexKey  數組的索引
+----------------------------------------------------------
* @return array 返回的值
+----------------------------------------------------------
*/
function array_column_unique(array $input, $columnKey, $indexKey = null) {
    return array_unique(array_column($input, $columnKey, $indexKey));
}

調用方法
protected function _format($list){
    
        //獲取招生專業信息
        $specIds = array_column_unique($list,"specId");
        count($specIds) && $specData = D('Huaqin/Specialty')->fetchPairs(array('id', 'ZYMC'), array( "id"=>array("in", $specIds)));
    
        //學制數據
        $xuezhiIds = array_column_unique($list, "XZ");   
        count($xuezhiIds) && $xuezhiData = D('Huaqin/Xuezi')->fetchPairs(array('id', 'XZMC'), array("id"=>array("in", $xuezhiIds)));
    
        foreach( $list as &$value ){
            $value['ZYMC'] = $specData[ $value['specId']];
            $value['XZMC'] = $xuezhiData[ $value['XZ']];
        }
        return $list;
    }


/**
         * 取回一個相關數組,第一個字段值爲碼,第二個字段爲值
         * @param array   $field 要尋找的兩個字段array('字段1','字段2')
         * @param array $where 查詢條件
         * @return array
         */
        public function fetchPairs($field , $where = array())
        {
            $where['terminalId'] = get_terminalId();
            $results = $this->findAll($where,$field);
            $data = array();
            if(is_array($results) && count($results) > 0) {
                foreach ($results AS $value) {
                    $data[$value[$field[0]]] = $value[$field[1]];
                }
                return $data;
            } else {
                return false;
            }
        }
相關文章
相關標籤/搜索