在PHP中格式化SQL结果的最快方法

在PHP中格式化SQL结果的最快方法,php,sql,mysql,mapping,resultset,Php,Sql,Mysql,Mapping,Resultset,PHP中转换(我的)SQL结果的最快(性能最好)方法是什么,如: array( array('user_name' => 'john', 'tag_id' => 1, 'tag_name' => 'foo'), array('user_name' => 'john', 'tag_id' => 2, 'tag_name' => 'bar'), array('user_name' => 'rick', 'tag_id' => 3, 'tag_na

PHP中转换(我的)SQL结果的最快(性能最好)方法是什么,如:

array(
 array('user_name' => 'john', 'tag_id' => 1, 'tag_name' => 'foo'),
 array('user_name' => 'john', 'tag_id' => 2, 'tag_name' => 'bar'),
 array('user_name' => 'rick', 'tag_id' => 3, 'tag_name' => 'foobar'),
 array('user_name' => 'rick', 'tag_id' => 2, 'tag_name' => 'bar')
);
进入更易于使用的领域:

array(
 array('name' => 'john', 'tags' => array(
  array('id' => 1, 'name' => 'foo'),
  array('id' => 2, 'name' => 'bar')
 ),
 array('name' => 'rick', 'tags' => array(
  array('id' => 3, 'name' => 'foobar'),
  array('id' => 2, 'name' => 'bar')
 )
);
或者有没有一个库已经做到了这一点,而没有增加完整ORM的灵活性和性能影响

谢谢

试试这个:

$data = array(
    array('user_name' => 'john', 'tag_id' => 1, 'tag_name' => 'foo'),
    array('user_name' => 'john', 'tag_id' => 2, 'tag_name' => 'bar'),
    array('user_name' => 'rick', 'tag_id' => 3, 'tag_name' => 'foobar'),
    array('user_name' => 'rick', 'tag_id' => 2, 'tag_name' => 'bar')
);
$final = array();
foreach ($data as $item) {
    if (!isset($final[$item['user_name']])) {
        $final[$item['user_name']] = array(
            'name' => $item['user_name'],
            'tags' => array()
        );
    }
    $final[$item['user_name']]['tags'][] = array(
        'id'   => $item['tag_id'],
        'name' => $item['tag_name']
    );
}
$final = array_values($final);
试试这个:

$data = array(
    array('user_name' => 'john', 'tag_id' => 1, 'tag_name' => 'foo'),
    array('user_name' => 'john', 'tag_id' => 2, 'tag_name' => 'bar'),
    array('user_name' => 'rick', 'tag_id' => 3, 'tag_name' => 'foobar'),
    array('user_name' => 'rick', 'tag_id' => 2, 'tag_name' => 'bar')
);
$final = array();
foreach ($data as $item) {
    if (!isset($final[$item['user_name']])) {
        $final[$item['user_name']] = array(
            'name' => $item['user_name'],
            'tags' => array()
        );
    }
    $final[$item['user_name']]['tags'][] = array(
        'id'   => $item['tag_id'],
        'name' => $item['tag_name']
    );
}
$final = array_values($final);

ezSQL at应该做您想做的事情。我已经接管了一个使用它的项目,它看起来很好地组合在一起。就我自己而言,我更喜欢离金属更近一些,但如果你想把它抽象出来,那么根据我的经验,它看起来相当可靠。

ezSQL at应该做你想做的事情。我已经接管了一个使用它的项目,它看起来很好地组合在一起。就我自己而言,我更喜欢离金属更近一些,但如果你想把它抽象出来,那么在我的经验中,它看起来相当可靠。

这不会过滤掉重复的部分。当然,查询应该做到这一点,但我总是会重复检查。(并可能记录一条关于重复项的警告)不会过滤出重复项。当然,查询应该做到这一点,但我总是会重复检查。(并可能记录重复的警告)