-3

多次元配列で配列を追加したい配列で問題が発生しています。ありがとう私の意図は、いくつかの値
が存在しない場合、それらの値を含む配列を動的にチェックすることです。それらを追加します。

私のコードは:

$a=array(array(1,2,3),
    array(4,5,6),
    array(7,8,9),
    array(10,11,12),
);

foreach($a as &$b){
array_push($b,array(1,1,1));

} 

echo "<pre>";
print_r($a);

必要な出力:

Array
(
[0] => Array
    (
        [0] => 1
        [1] => 2
        [2] => 3


    )

[1] => Array
    (
        [0] => 4
        [1] => 5
        [2] => 6


    )

[2] => Array
    (
        [0] => 7
        [1] => 8
        [2] => 9


    )

[3] => Array
    (
        [0] => 10
        [1] => 11
        [2] => 12

    )
[4] => Array
    (
        [0] => 1
        [1] => 1
        [2] => 1
    )


)

しかし、私はこのようになっています

Array
(
[0] => Array
    (
        [0] => 1
        [1] => 2
        [2] => 3
        [3] => Array
            (
                [0] => 1
                [1] => 1
                [2] => 1
            )

    )

[1] => Array
    (
        [0] => 4
        [1] => 5
        [2] => 6
        [3] => Array
            (
                [0] => 1
                [1] => 1
                [2] => 1
            )

    )

[2] => Array
    (
        [0] => 7
        [1] => 8
        [2] => 9
        [3] => Array
            (
                [0] => 1
                [1] => 1
                [2] => 1
            )

    )

[3] => Array
    (
        [0] => 10
        [1] => 11
        [2] => 12
        [3] => Array
            (
                [0] => 1
                [1] => 1
                [2] => 1
            )

    )

)
4

3 に答える 3

1
$a = array(
    array(1, 2, 3),
    array(4, 5, 6),
    array(7, 8, 9),
    array(10, 11, 12)
);

array_push($a, array(1, 1, 1));
// or
$a[] = array(1, 1, 1);

echo '<pre>';
print_r($a);
于 2012-12-10T10:24:23.187 に答える
0

必要な出力を確認した後、この場合は foreach は必要ありません。

必要な配列のみをプッシュすると思います...次のように:

$a=array(array(1,2,3),
  array(4,5,6),
  array(7,8,9),
  array(10,11,12),
);
array_push($a,array(1,1,1));
echo "<pre>";
print_r($a);

それが役立つことを願っています

于 2012-12-10T10:35:40.983 に答える
-1

次のようなものを試してください:

$array=array(
    array(4,5,6),
    array(7,8,9),
    array(10,11,12),
    array(1,1,1)    
);

編集: ループ内で配列を埋める方法。

whileもう少し明確なので、a を使用します。

$x=1;
$array=array();
while($x<6){
    $array[$x]=array(1+$x*3, 2+$x*3, 3+$x*3);
    $x++;
}

これにより、次のようなマトリックスが出力されます。

(4 ,  5,  6)
(7 ,  8,  9)
(10, 11, 12)
(13, 14, 15)
于 2012-12-10T10:18:22.927 に答える