时间:2021-07-01 10:21:17 帮助过:63人阅读
就像是 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>