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

     ) 

) 

Wie kann ich das Array oben in Array unten konvertieren.Mehrdimensionales Array Konvertieren von internen Arrays in Strings

Das Array oben enthält 9 Arrays. Und sie haben Meisterschaft und Ränge drinnen. Ich möchte sie zu einer Schnur machen. masteryid xx Rang ++ masteryid xx Rang ....

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 ++ .... 
) 

Ich bin mit diesem Code stecken und ich versuche, diese etwa 5 Stunden tun ich es könnte nicht tun so hier bin ich gekommen.

+0

Sie wirklich für andere Antworten warten sollten lernen. Nichts gegen Yu Youf Moulahoum, aber das ist wahrscheinlich eine der schlechtesten Möglichkeiten, es zu tun. Ich würde eigentlich _Matt Raines_ auswählen, wenn es eine Erklärung hätte. – AbraCadaver

+0

Wenn Sie eine ähnliche Frage erneut stellen, verwenden Sie bitte 'var_export' und nicht' print_r', um die Beispieldaten einzubeziehen. Die Ausgabe von 'var_export' ist PHP-Code, so dass wir es einfach kopieren und in ein Skript einfügen können, um es zu testen. –

+0

@MattRaines oh ich wusste nicht, dass krank das nächste Mal nutzen, danke für die Info – Heptagon

Antwort

4

Try this:

$output = array(); 

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

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

Ich hoffe, dass Ihnen helfen.

+0

Vielen Dank! :) Kannst du diesen Code ein wenig erklären? Ich werde diese Antwort in 2 Minuten als korrekt markieren. – Heptagon

3

Magie Einzeiler:

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

Dies erfordert eine anonyme Funktion für jedes Element in der äußeren Anordnung. Wegen der & vor $a wird ein Verweis auf das Element übergeben und wir können es innerhalb der Funktion ändern.

Die Funktion reduziert dann jedes Element wiederum in einen String, indem "$c[masteryId] xx $c[rank]" an das Ergebnis der vorherigen Reduktion angehängt wird. Die vorherige Ausgabe, gefolgt von " ++ ", wird nur vorangestellt, wenn sie existiert (dh sie ist nicht die erste Position im Subarray).

Hier ist es ein bisschen mehr leserlich, mit einigen Leerzeichen und einige möglicherweise klarere Variablennamen :)

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

Wow! Es funktioniert dank, was hast du da zu erklären? – Heptagon

Verwandte Themen