Kann dies nicht genau wie bei Laravel Orm mit dem Abfrage-Builder erfolgen?
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>