2016-06-10 92 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