在php中使用foreach创建数组

时间:2012-12-10 10:13:57

标签: php arrays

我在阵列中遇到问题我希望在多维数组中添加数组。谢谢你我的意图是动态检查一个带有一些值的数组,如果这些值为    不存在我会添加它们

我的代码是:

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

    )

)

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分: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);

希望有所帮助

答案 2 :(得分:-1)

尝试类似:

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

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

我会使用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)