2016-03-27 11 views
1

私は説明するにはあまりにも長く奇妙なことをやっていますが、基本的に複雑な方法で文字列を混乱させる方法で配列にマッピングしました。多次元配列の行とその各要素を数えますか?

field[26][25]='x'; 
field[24][23]='z'; 
field[28][29]='y'; 

を今、私は成功し、私が望んでいた正確な方法で文字列をごちゃ混ぜにしたので、私はリニア結果を再構築する必要があります。これは、それがどのように見えるかの例です。

私は配列の1行目を取り、この行のすべての要素をループして文字列にする必要があります。次に行2などで同じことを行い、1つの大規模な線形文字列を作成します。

私はそれらの行にいくつの行と要素を数えますか?私の人生では、マルチアレイのためにこれを行う方法を見つけることさえできません。

種類について

+1

'foreach'と' implode' –

+0

?各行のアイテムを数えたり、特定の順序ですべての値を文字列に結合するには? 2つのタスクは必ずしも関連していません。値を数えずに結合することができます。 – axiac

答えて

0

@ u_mulder'sはここで確かな答えを得ました。要素の数について、あなただけ言うだろう:

$total = 0; 
foreach($matrix as $row) $total += count($row); 

要素の連結のために、あなただけ言うだろう:

$concat = ''; 
foreach($matrix as $row) $concat .= implode('', $row); 

ボブのあなたの叔父は。しかし、本当に、このような奇妙なマッシュアップの有効なユースケースはありますか?

0
$field[26][25]='x'; 
$field[24][23]='z'; 
$field[28][29]='y'; 
$field_string = ''; 
array_walk_recursive ($field , function($item, $key) use (&$field_string){ 
if(!is_array($item)){ 
    $field_string .= $item; 
} 
}); 
echo $field_string; 

正直なところ、これはちょっと混乱します。私はより多くの情報を必要とするが、私は、これは

0

を助けている場合は、空の文字列で始まり、各ライン上の線やアイテムを反復処理すると、文字列に各項目を追加するために、2つのネストされたforeachを使用することができます知っている可能性があります

$result = ''; 
foreach ($fields as $row) { 
    foreach ($row as $item) { 
     $result .= $item; 
    } 
} 

foreachの全体を$result .= implode('', $row);に置き換えることもできます。

あなたも、その後、array_map()への呼び出しimplode()文字列にarray_map()によって生成配列と外側foreachを置き換えることができます:あなたは正確に何が必要です

$string = implode(
    '', 
    array_map(
     function (array $items) { 
      return implode('', $items); 
     }, 
     $fields 
    ) 
);