当前位置:Gxlcms > PHP教程 > laravel-php,为什么要使用对象?不能用数组代替吗

laravel-php,为什么要使用对象?不能用数组代替吗

时间:2021-07-01 10:21:17 帮助过:63人阅读

就像是 laravel orm不也是能通过使用查询构造器完成的吗?

回复内容:

就像是 laravel orm不也是能通过使用查询构造器完成的吗?

PHP用数组保存SQL查询的结果集不很正常么?怎么会说不能用数组呢?
PDO fetchAll返回的本来就是一个数组:
$db->query('SELECT * FROM posts')->fetchAll(PDO::FETCH_ASSOC);
PHP数组操作很灵活,可以干很多事,甚至是SQL里面的事,比如排序和分组:

  1. <code><!--?php
  2. //奥运奖牌榜,依次按金牌,银牌,铜牌的数目进行降序排序.
  3. header('Content-Type: text/plain; charset=utf-8');
  4. $arr = array(
  5. '中国' =--> array(
  6. '金牌' => 8,
  7. '银牌' => 3,
  8. '铜牌' => 6,
  9. ),
  10. '俄罗斯' => array(
  11. '金牌' => 3,
  12. '银牌' => 6,
  13. '铜牌' => 3,
  14. ),
  15. '美国' => array(
  16. '金牌' => 6,
  17. '银牌' => 8,
  18. '铜牌' => 8,
  19. ),
  20. '澳大利亚' => array(
  21. '金牌' => 4,
  22. '银牌' => 0,
  23. '铜牌' => 4,
  24. ),
  25. '意大利' => array(
  26. '金牌' => 3,
  27. '银牌' => 4,
  28. '铜牌' => 2,
  29. ),
  30. );
  31. // 实现 ORDER BY
  32. foreach($arr as $k => $v) {
  33. $sort['金牌'][$k] = $v['金牌'];
  34. $sort['银牌'][$k] = $v['银牌'];
  35. $sort['铜牌'][$k] = $v['铜牌'];
  36. }
  37. array_multisort(
  38. $sort['金牌'], SORT_DESC,
  39. $sort['银牌'], SORT_DESC,
  40. $sort['铜牌'], SORT_DESC,
  41. $arr);
  42. var_export($arr);
  43. // 实现 GROUP BY (看看'金牌'字段都有哪些值)
  44. $tmp = array();
  45. foreach($arr as $k => $v) {
  46. if(in_array($v['金牌'], $tmp) === FALSE) {
  47. $tmp[] = $v['金牌'];
  48. }
  49. }
  50. var_export($tmp);</code>

人气教程排行