Php 多维数组将内部数组转换为字符串

Php 多维数组将内部数组转换为字符串,php,arrays,Php,Arrays,如何将上面的数组转换为下面的数组 上面的数组内部有9个数组。他们在里面有大师级的人物。我想把它们做成一根绳子。masteryid xx排名++masteryid xx排名 Array ( [0] => Array ( [0] => Array ( [masteryId] => 6111 [rank] =>

如何将上面的数组转换为下面的数组

上面的数组内部有9个数组。他们在里面有大师级的人物。我想把它们做成一根绳子。masteryid xx排名++masteryid xx排名

    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
                )

        )

)
我被这段代码困住了,我试着做了大约5个小时,我做不到,所以我来到这里

试试这个:

    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 ++ ....
)
我希望这会对您有所帮助。

神奇一行:

$output = array();

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

   $output[] = rtrim($s,' ++ ');
}
这将为外部数组中的每个元素调用一个匿名函数。由于&before$a,传递了对元素的引用,我们可以在函数中修改它

然后,该函数通过将$c[masteryId]xx$c[rank]追加到上一次缩减的结果,依次将每个元素缩减为一个字符串。前一个输出后跟+,只有在它存在时才加前缀,即它不是子数组中的第一项

这里更清晰一些,有一些空白和一些可能更清晰的变量名:

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

非常感谢你能解释一下这个代码吗。我会在2分钟内将这个答案标记为正确。你应该真正学会等待其他答案。我无意冒犯你,但这可能是最糟糕的方式之一。如果有任何解释,我会选择Matt Raines。如果你再次问类似的问题,请使用var_导出而不是打印来包含样本数据。var_导出的输出是PHP代码,这样我们就可以复制并粘贴到脚本中进行测试了。@MattRaines哦,我不知道下次我会使用它,谢谢info@AbraCadaver噢,嘘,谢谢!哇!谢谢,你在那里做了什么?你能解释一下吗?
array_walk($array, function(&$subarray){
    $subarray = array_reduce($subarray, function($carry, $item){
        return ($carry ? "$carry ++ " : "") . "$item[masteryId] xx $item[rank]";
    }, "");
});