2017-11-20 1 views
-1

PHPで1次元配列から2次元を作成するには?例えば
私のように1つの配列を持っている:ループと操作で1次元配列から2Dを作成する方法は?

$a = Array 
     (
      [0] => qwer 
      [1] => asdfg 
     ) 

そして、私はそれがこのようなことに変換したい:

$b = Array 
    (
     [0] => array 
       (
        [0] => qw 
        [1] => we 
        [2] => er 
       ) 
     [1] => array 
       (
        [0] => as 
        [1] => sd 
        [2] => df 
        [3] => fg 
      ) 
    ) 

は、あなたの答えをありがとうございました。

+0

はStackOverflowのへようこそ。 [How to Ask](https://stackoverflow.com/help/how-to-ask)を読んで、あなたが試したことを教えてください。 – Antimony

答えて

1

substrを使用して、$aアレイをループし、$bアレイに格納することができます。

CODE:

$a = array(
     0 => 'qwer', 
     1 => 'asdfg' 
    ); 

$b = array(); 
$a_length = count($a); 
for($i = 0; $i < $a_length; $i++){ 
    // Create new array 
    $b[$i] = array(); 
    // Get the string length of $a element and minus it to 1 
    for($j = 0; $j < (strlen($a[$i]) - 1); $j++){ 
     // Add it to our new array. 
     $b[$i][] = substr($a[$i], $j, 2); 
    } 
} 
echo "<pre>"; 
print_r($b); 

OUTPUT:

Array 
(
    [0] => Array 
     (
      [0] => qw 
      [1] => we 
      [2] => er 
     ) 

    [1] => Array 
     (
      [0] => as 
      [1] => sd 
      [2] => df 
      [3] => fg 
     ) 

) 
+2

これは確かに解決策を提供しますが、私はここに「*何も説明することは何もありません」と反対します。たとえば、 '$ b'を目的の出力に割り当て、同じ結果を得ることができます。このアプローチが望ましい出力を達成する方法と、それがすべてのインスタンスでうまくいく理由を正確にカバーするいくつかの文章は、OPの知識を本当に助けます:) –

関連する問題