laravel orm처럼 쿼리빌더를 이용하면 안되나요?
laravel orm처럼 쿼리빌더를 이용하면 안되나요?
PHP가 SQL 쿼리의 결과 집합을 저장하기 위해 배열을 사용하는 것이 정상 아닌가요?
PDO fetchAll은 배열을 반환합니다.$db->query('SELECT * FROM posts')->fetchAll(PDO::FETCH_ASSOC);
PHP 배열 작업은 매우 복잡합니다. 유연하므로 정렬 및 그룹화와 같은 SQL 작업도 포함하여 많은 작업을 수행할 수 있습니다.
<code><?php //奥运奖牌榜,依次按金牌,银牌,铜牌的数目进行降序排序. header('Content-Type: text/plain; charset=utf-8'); $arr = array( '中国' => array( '金牌' => 8, '银牌' => 3, '铜牌' => 6, ), '俄罗斯' => array( '金牌' => 3, '银牌' => 6, '铜牌' => 3, ), '美国' => array( '金牌' => 6, '银牌' => 8, '铜牌' => 8, ), '澳大利亚' => array( '金牌' => 4, '银牌' => 0, '铜牌' => 4, ), '意大利' => array( '金牌' => 3, '银牌' => 4, '铜牌' => 2, ), ); // 实现 ORDER BY foreach($arr as $k => $v) { $sort['金牌'][$k] = $v['金牌']; $sort['银牌'][$k] = $v['银牌']; $sort['铜牌'][$k] = $v['铜牌']; } array_multisort( $sort['金牌'], SORT_DESC, $sort['银牌'], SORT_DESC, $sort['铜牌'], SORT_DESC, $arr); var_export($arr); // 实现 GROUP BY (看看'金牌'字段都有哪些值) $tmp = array(); foreach($arr as $k => $v) { if(in_array($v['金牌'], $tmp) === FALSE) { $tmp[] = $v['金牌']; } } var_export($tmp);</code>