/** * 取回一個相關數組,第一個字段值爲碼,第二個字段爲值 * @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; } }