0

こんにちは私は結果から次の配列を持っています:

$ouput = $OuputTypeDB->getTotalOutput($uid);

それぞれ独自の値を持つ5種類の出力があり、現在の結果は次のように返されます。

Array(
            [0] => Array
                (
                    [type] => 4
                    [val] => 1
                )

            [1] => Array
                (
                    [type] => 3
                    [val] => 2
                )

            [2] => Array
                (
                    [type] => 2
                    [val] => 1
                )

        )

出力結果はタイプdescの順序に基づいて表示されますが、問題は5と1のタイプがないことです。上記の結果に、5と1の配列を追加して、次のように並べ替えるにはどうすればよいですか。

Array
(
    [0] => Array
        (
            [rating] => 5
            [count] => 0
        )

    [1] => Array
        (
            [rating] => 4
            [count] => 1
        )

    [2] => Array
        (
            [rating] => 3
            [count] => 1
        )

   [3] => Array
        (
            [rating] => 2
            [count] => 1
        )

   [4] => Array
        (
            [rating] => 1
            [count] => 0
        )

)

タイプ5と1には値がないため、両方とも。で設定されval 0ます。ありがとう

4

2 に答える 2

1

20時間以内に同じ質問

ここに答えがあります:

foreach ($output as $arr) {
    $vote[$arr['type']] = $arr['val'];
}
$output = array();
for ($i=5; $i>0; $i--) {
    $output[] = array("rating"=>$i,"count"=> $vote[$i] ? $vote[$i] : 0);
}
于 2013-03-10T02:32:34.177 に答える
0

アイテムを追加するには、$ output [] = array( "rating" => 5、 "count" => $ countFor5);を実行します。ソートには、uksortまたはusort関数を使用できます

于 2013-03-10T02:29:48.977 に答える