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