如何对数组项进行分类?

I have a query which fetches all comments for question and answers in one page (each page is containing at least one post (question), and maybe plus one or more posts (answers)). Now I need to separate comments according to its own question or answers.

The result of my query (fetching all comments) is something like this:

while ($results = $sth->fetch(PDO::FETCH_ASSOC)) {
    echo '<pre>';        
    print_r($results);
}

/* Output:
            Array
            (
                 [id] => 1
                 [post_id] => 1
                 [content] => Have you any tried so far? 
            )

            Array
            (
                 [id] => 2
                 [post_id] => 3
                 [content] => Great answer, upvote 
            )

            Array
            (
                 [id] => 3
                 [post_id] => 3
                 [content] => That semicolon is redundant in line 5. Pplease edit it
            )

            Array
            (
                 [id] => 4
                 [post_id] => 2
                 [content] => Won't work ...!
            )

            Array
            (
                 [id] => 5
                 [post_id] => 3
                 [content] => @alex You are right thanks, Edited.
            )

So, as you see in the output, all comments are mixed.. Now I need to classify them. Something like this:

/* NewOutput:

            [1] => Array
     post_id ^     (
                        [0] => Array
                               (
                                   [id] => 1
                                   [content] => Have you any tried so far?
                               )
                   )

            [2] => Array
     post_id ^     (
                        [0] => Array
                               (
                                   [id] => 4
                                   [content] => Won't work ...!
                               )
                   )

            [3] => Array
     post_id ^     (
                        [0] => Array
                               (
                                   [id] => 2
                                   [content] => Great answer, upvote
                               )

                        [1] => Array
                               (
                                   [id] => 3
                                   [content] => That semicolon is redundant in line 5. Pplease edit it
                               )

                        [2] => Array
                               (
                                   [id] => 5
                                   [content] => @alex You are right thanks, Edited.
                               )
                   )

Well, Now I want to know, how can I create a nested array according to the value of specific key in the array? exactly like above.

Try this...

$output = array();
foreach($results as $r){
    $key = "post_".$r["post_id"];
    if(!array_key_exists($key, $output)){
        $output[$key] = array();
    }
    array_push($output[$key], array("id"=>$k["id"], "content"=>$k["content"]));
}
print_r($output);