Heim >Backend-Entwicklung >PHP-Tutorial >laravel - PHP, warum Objekte verwenden? Können wir nicht stattdessen ein Array verwenden?

laravel - PHP, warum Objekte verwenden? Können wir nicht stattdessen ein Array verwenden?

WBOY
WBOYOriginal
2016-09-24 09:15:071379Durchsuche

Kann dies nicht genau wie bei Laravel Orm mit dem Abfrage-Builder erfolgen?

Antwortinhalt:

Kann dies nicht genau wie bei Laravel Orm mit dem Abfrage-Builder erfolgen?

Ist es für PHP nicht normal, Arrays zum Speichern der Ergebnismengen von SQL-Abfragen zu verwenden? Wie können Sie sagen, dass Arrays nicht verwendet werden können?
PDO fetchAll gibt ein Array zurück:
$db->query('SELECT * FROM posts')->fetchAll(PDO::FETCH_ASSOC);
PHP-Array-Operationen sind sehr kompliziert. Flexibel können Sie viele Dinge tun, sogar Dinge in SQL, wie Sortieren und Gruppieren:

<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>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn