2016-06-10 65 views
0
Array 
(
    [0] => Array 
     (
      [0] => Array 
       (
        [masteryId] => 6111 
        [rank] => 5 
       ) 

      [1] => Array 
       (
        [masteryId] => 6122 
        [rank] => 1 
       ) 

      [2] => Array 
       (
        [masteryId] => 6131 
        [rank] => 5 
       ) 

      [3] => Array 
       (
        [masteryId] => 6142 
        [rank] => 1 
       ) 

      [4] => Array 
       (
        [masteryId] => 6151 
        [rank] => 5 
       ) 

      [5] => Array 
       (
        [masteryId] => 6162 
        [rank] => 1 
       ) 

      [6] => Array 
       (
        [masteryId] => 6211 
        [rank] => 5 
       ) 

      [7] => Array 
       (
        [masteryId] => 6223 
        [rank] => 1 
       ) 

      [8] => Array 
       (
        [masteryId] => 6231 
        [rank] => 5 
       ) 

      [9] => Array 
       (
        [masteryId] => 6241 
        [rank] => 1 
       ) 

     ) 

    [1] => Array 
     (
      [0] => Array 
       (
        [masteryId] => 6114 
        [rank] => 5 
       ) 

      [1] => Array 
       (
        [masteryId] => 6123 
        [rank] => 1 
       ) 

      [2] => Array 
       (
        [masteryId] => 6131 
        [rank] => 5 
       ) 

      [3] => Array 
       (
        [masteryId] => 6142 
        [rank] => 1 
       ) 

      [4] => Array 
       (
        [masteryId] => 6211 
        [rank] => 5 
       ) 

      [5] => Array 
       (
        [masteryId] => 6223 
        [rank] => 1 
       ) 

      [6] => Array 
       (
        [masteryId] => 6231 
        [rank] => 5 
       ) 

      [7] => Array 
       (
        [masteryId] => 6241 
        [rank] => 1 
       ) 

      [8] => Array 
       (
        [masteryId] => 6251 
        [rank] => 5 
       ) 

      [9] => Array 
       (
        [masteryId] => 6262 
        [rank] => 1 
       ) 

     ) 

    [2] => Array 
     (
      [0] => Array 
       (
        [masteryId] => 6114 
        [rank] => 5 
       ) 

      [1] => Array 
       (
        [masteryId] => 6122 
        [rank] => 1 
       ) 

      [2] => Array 
       (
        [masteryId] => 6131 
        [rank] => 5 
       ) 

      [3] => Array 
       (
        [masteryId] => 6142 
        [rank] => 1 
       ) 

      [4] => Array 
       (
        [masteryId] => 6312 
        [rank] => 5 
       ) 

      [5] => Array 
       (
        [masteryId] => 6322 
        [rank] => 1 
       ) 

      [6] => Array 
       (
        [masteryId] => 6331 
        [rank] => 5 
       ) 

      [7] => Array 
       (
        [masteryId] => 6343 
        [rank] => 1 
       ) 

      [8] => Array 
       (
        [masteryId] => 6351 
        [rank] => 5 
       ) 

      [9] => Array 
       (
        [masteryId] => 6362 
        [rank] => 1 
       ) 

     ) 

    [3] => Array 
     (
      [0] => Array 
       (
        [masteryId] => 6111 
        [rank] => 5 
       ) 

      [1] => Array 
       (
        [masteryId] => 6122 
        [rank] => 1 
       ) 

      [2] => Array 
       (
        [masteryId] => 6131 
        [rank] => 5 
       ) 

      [3] => Array 
       (
        [masteryId] => 6141 
        [rank] => 1 
       ) 

      [4] => Array 
       (
        [masteryId] => 6151 
        [rank] => 5 
       ) 

      [5] => Array 
       (
        [masteryId] => 6162 
        [rank] => 1 
       ) 

      [6] => Array 
       (
        [masteryId] => 6312 
        [rank] => 5 
       ) 

      [7] => Array 
       (
        [masteryId] => 6322 
        [rank] => 1 
       ) 

      [8] => Array 
       (
        [masteryId] => 6331 
        [rank] => 5 
       ) 

      [9] => Array 
       (
        [masteryId] => 6343 
        [rank] => 1 
       ) 

     ) 

    [4] => Array 
     (
      [0] => Array 
       (
        [masteryId] => 6114 
        [rank] => 5 
       ) 

      [1] => Array 
       (
        [masteryId] => 6123 
        [rank] => 1 
       ) 

      [2] => Array 
       (
        [masteryId] => 6134 
        [rank] => 5 
       ) 

      [3] => Array 
       (
        [masteryId] => 6142 
        [rank] => 1 
       ) 

      [4] => Array 
       (
        [masteryId] => 6311 
        [rank] => 5 
       ) 

      [5] => Array 
       (
        [masteryId] => 6322 
        [rank] => 1 
       ) 

      [6] => Array 
       (
        [masteryId] => 6332 
        [rank] => 5 
       ) 

      [7] => Array 
       (
        [masteryId] => 6342 
        [rank] => 1 
       ) 

      [8] => Array 
       (
        [masteryId] => 6351 
        [rank] => 5 
       ) 

      [9] => Array 
       (
        [masteryId] => 6362 
        [rank] => 1 
       ) 

     ) 

    [5] => Array 
     (
      [0] => Array 
       (
        [masteryId] => 6111 
        [rank] => 5 
       ) 

      [1] => Array 
       (
        [masteryId] => 6122 
        [rank] => 1 
       ) 

      [2] => Array 
       (
        [masteryId] => 6134 
        [rank] => 5 
       ) 

      [3] => Array 
       (
        [masteryId] => 6142 
        [rank] => 1 
       ) 

      [4] => Array 
       (
        [masteryId] => 6211 
        [rank] => 5 
       ) 

      [5] => Array 
       (
        [masteryId] => 6223 
        [rank] => 1 
       ) 

      [6] => Array 
       (
        [masteryId] => 6231 
        [rank] => 5 
       ) 

      [7] => Array 
       (
        [masteryId] => 6241 
        [rank] => 1 
       ) 

      [8] => Array 
       (
        [masteryId] => 6251 
        [rank] => 5 
       ) 

      [9] => Array 
       (
        [masteryId] => 6261 
        [rank] => 1 
       ) 

     ) 

    [6] => Array 
     (
      [0] => Array 
       (
        [masteryId] => 6111 
        [rank] => 5 
       ) 

      [1] => Array 
       (
        [masteryId] => 6121 
        [rank] => 1 
       ) 

      [2] => Array 
       (
        [masteryId] => 6131 
        [rank] => 5 
       ) 

      [3] => Array 
       (
        [masteryId] => 6142 
        [rank] => 1 
       ) 

      [4] => Array 
       (
        [masteryId] => 6211 
        [rank] => 5 
       ) 

      [5] => Array 
       (
        [masteryId] => 6223 
        [rank] => 1 
       ) 

      [6] => Array 
       (
        [masteryId] => 6231 
        [rank] => 5 
       ) 

      [7] => Array 
       (
        [masteryId] => 6241 
        [rank] => 1 
       ) 

      [8] => Array 
       (
        [masteryId] => 6251 
        [rank] => 5 
       ) 

      [9] => Array 
       (
        [masteryId] => 6262 
        [rank] => 1 
       ) 

     ) 

    [7] => Array 
     (
      [0] => Array 
       (
        [masteryId] => 6211 
        [rank] => 5 
       ) 

      [1] => Array 
       (
        [masteryId] => 6221 
        [rank] => 1 
       ) 

      [2] => Array 
       (
        [masteryId] => 6231 
        [rank] => 5 
       ) 

      [3] => Array 
       (
        [masteryId] => 6241 
        [rank] => 1 
       ) 

      [4] => Array 
       (
        [masteryId] => 6312 
        [rank] => 5 
       ) 

      [5] => Array 
       (
        [masteryId] => 6323 
        [rank] => 1 
       ) 

      [6] => Array 
       (
        [masteryId] => 6331 
        [rank] => 5 
       ) 

      [7] => Array 
       (
        [masteryId] => 6343 
        [rank] => 1 
       ) 

      [8] => Array 
       (
        [masteryId] => 6351 
        [rank] => 5 
       ) 

      [9] => Array 
       (
        [masteryId] => 6361 
        [rank] => 1 
       ) 

     ) 

    [8] => Array 
     (
      [0] => Array 
       (
        [masteryId] => 6111 
        [rank] => 5 
       ) 

      [1] => Array 
       (
        [masteryId] => 6122 
        [rank] => 1 
       ) 

      [2] => Array 
       (
        [masteryId] => 6131 
        [rank] => 5 
       ) 

      [3] => Array 
       (
        [masteryId] => 6142 
        [rank] => 1 
       ) 

      [4] => Array 
       (
        [masteryId] => 6151 
        [rank] => 5 
       ) 

      [5] => Array 
       (
        [masteryId] => 6161 
        [rank] => 1 
       ) 

      [6] => Array 
       (
        [masteryId] => 6312 
        [rank] => 5 
       ) 

      [7] => Array 
       (
        [masteryId] => 6322 
        [rank] => 1 
       ) 

      [8] => Array 
       (
        [masteryId] => 6331 
        [rank] => 5 
       ) 

      [9] => Array 
       (
        [masteryId] => 6343 
        [rank] => 1 
       ) 

     ) 

    [9] => Array 
     (
      [0] => Array 
       (
        [masteryId] => 6211 
        [rank] => 5 
       ) 

      [1] => Array 
       (
        [masteryId] => 6223 
        [rank] => 1 
       ) 

      [2] => Array 
       (
        [masteryId] => 6231 
        [rank] => 5 
       ) 

      [3] => Array 
       (
        [masteryId] => 6241 
        [rank] => 1 
       ) 

      [4] => Array 
       (
        [masteryId] => 6312 
        [rank] => 5 
       ) 

      [5] => Array 
       (
        [masteryId] => 6322 
        [rank] => 1 
       ) 

      [6] => Array 
       (
        [masteryId] => 6332 
        [rank] => 5 
       ) 

      [7] => Array 
       (
        [masteryId] => 6343 
        [rank] => 1 
       ) 

      [8] => Array 
       (
        [masteryId] => 6352 
        [rank] => 5 
       ) 

      [9] => Array 
       (
        [masteryId] => 6363 
        [rank] => 1 
       ) 

     ) 

) 

如何將上面的數組轉換爲下面的數組。上面的數組裏面有9個數組。他們掌握了ID並在內部排名。我想讓他們成爲一個字符串。 masteryid XX排名++ masteryid XX排名....多維數組將數組轉換爲字符串

Array 
( 
    [0] => 6111 xx 5 ++ 6122 xx 1 ++ 6131 xx 5 ++ 6142 xx 1 .... 
    [1] => 6114 xx 5 ++ 6123 xx 1 ++ 6131 xx 5 ++ 6142 xx 1 .... 
    .... 
    [9] => 6221 xx 5 ++ 6223 xx 1 ++ 6231 xx 5 ++ .... 
) 

我堅持這個代碼,我試圖做到這一點約5小時我不能做,所以我來到了這裏。

+0

你真的應該學會等待答案。沒有冒犯_Youcef Moulahoum_但是這可能就做最壞的方式之一。如果有任何解釋,我會選擇_Matt Raines_。 – AbraCadaver

+0

如果你再問類似的問題,請使用'var_export'而不是'print_r'包括樣本數據。 'var_export'的輸出是PHP代碼,所以我們可以將它複製並粘貼到腳本中進行測試。 –

+0

@MattRaines哦,我不知道這病該用下一次感謝信息 – Heptagon

回答

4

試試這個:

$output = array(); 

foreach($array as $value) 
{ 
    $s = ""; 
    foreach($value as $v) 
     $s .= $v['masteryId'].' xx '.$v['rank'].' ++ '; 

    $output[] = rtrim($s,' ++ '); 
} 

我希望這將幫助你。

+0

非常感謝! :)你能稍微解釋一下這段代碼嗎?我會在2分鐘內將此答案標記爲正確。 – Heptagon

3

魔術單行:

array_walk($array,function(&$a){$a=array_reduce($a,function($b,$c){return($b?"$b ++ ":"")."$c[masteryId] xx $c[rank]";},"");}); 

這要求外陣列中的每個元素的匿名函數。因爲在$a之前的&對該元素的引用被傳遞,並且我們可以在該函數內對其進行修改。

然後,該函數通過附加"$c[masteryId] xx $c[rank]"到先前減少的結果減少反過來每個元素爲一個字符串。前面的輸出,隨後" ++ "如果它存在只是前綴(即它是不是在子陣列第一項目)。

這是多一點清晰,具有一定的空白和一些潛在的更清晰的變量名:)

array_walk($array, function(&$subarray){ 
    $subarray = array_reduce($subarray, function($carry, $item){ 
     return ($carry ? "$carry ++ " : "") . "$item[masteryId] xx $item[rank]"; 
    }, ""); 
}); 
+0

哇!它的工作表示感謝,你在那裏做了什麼,你能解釋一下嗎? – Heptagon