-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)    
);

编辑:如何在循环中填充数组。

我会使用 a while,因为它更清楚一点。

$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 回答