2013-03-10 38 views
0

您好我有以下從結果數組:PHP數組預置值insertation

$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。謝謝

回答

1

same question然後19小時前

這裏就是答案:

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); 
} 
+0

如何排序? – d3bug3r 2013-03-10 02:34:02

+0

好吧,它的工作原理,謝謝 – d3bug3r 2013-03-10 02:37:57

+1

全包! – vladkras 2013-03-10 02:42:43

0

添加一個項目做 $ output [] = array(「rating」=> 5,「count」=> $ countFor5); 進行排序,你可以使用uksort或usort函數小

+0

沒有,這不得不這樣做從$輸出結果檢查和添加型這不是已經存在與默認值0 – d3bug3r 2013-03-10 02:32:40