laravel - php,为什么要使用对象?不能用数组代替吗
程序员文章站
2022-05-11 17:55:26
...
就像是 laravel orm不也是能通过使用查询构造器完成的吗?
回复内容:
就像是 laravel orm不也是能通过使用查询构造器完成的吗?
PHP用数组保存SQL查询的结果集不很正常么?怎么会说不能用数组呢?
PDO fetchAll返回的本来就是一个数组:$db->query('SELECT * FROM posts')->fetchAll(PDO::FETCH_ASSOC);
PHP数组操作很灵活,可以干很多事,甚至是SQL里面的事,比如排序和分组:
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);