首頁  >  文章  >  後端開發  >  laravel - php,為什麼要使用物件?不能用數組代替嗎

laravel - php,為什麼要使用物件?不能用數組代替嗎

WBOY
WBOY原創
2016-09-24 09:15:071329瀏覽

就像是 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>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn