在PHP中创建一个空的2D数组?

2021/01/30 07:21 · php ·  · 0评论

我知道数组是动态创建的,确实没有必要提前创建它们,但是使用2D数组怎么做呢?以同样的方式?

(for$j)
{
for($i)
    {
    $array[j][i] = "data";
    }
}

这样的东西?当然,循环显然是真实的。

最简单的方法是,可以将二维数组创建为:

<?php
    $emptyArray = array(array());
?>

或者从PHP 5.4开始,您还可以使用:

<?php
    $emptyArray = [[]];
?>

您不会在PHP中创建2d数组,这不是传统意义上的。

上面的建议$a = array(array());实际上只是创建以下数组:

$a = array(
    0 => array( )
);

因此,$a[0][0] = 'test';将导致以下结果:

$a = array(
    0 => array(
        0 => 'test'
    )
);

乍一看,它看起来像是可行的,但实际上,这仍然不是2D数组。当您尝试使用第二行(索引1)时,此时PHP会发出通知。例如:

$a[1][0] = 'test2';

这是因为$a[1]不包含任何内容(请记住array(array())只是在索引0处创建一个数组?)。

要使其正常工作,您需要再次执行$a[1] = array();,或者如果要避免使用索引,可以执行$a[] = array();


$a = array(); // array of columns
for($c=0; $c<5; $c++){
    $a[$c] = array(); // array of cells for column $c
    for($r=0; $r<3; $r++){
        $a[$c][$r] = rand();
    }
}

上面的代码创建了一个5x3的“ 2d数组”随机数。

PHP文件是总是开始为这几样基本问题的好办法。

<?php
$arr = array("somearray" => array(6 => 5, 13 => 9, "a" => 42));

echo $arr["somearray"][6];    // 5
echo $arr["somearray"][13];   // 9
echo $arr["somearray"]["a"];  // 42
?>

您能指定您要做什么吗?您可以使用foreach函数遍历多维数组

$ary=array( "subarr" => array("foo","bar") );

foreach($ary as $a){
  foreach($a as $ary_sub){
    echo $ary_sub;
  }
}

要么

foreach($ary["subarr"] as $key=>$subval){
 echo $subval;
}

如果要创建一个空数组来处理文本文件中的行,则只需使用$ array = array();。

使用“ array(array()())”将创建一个二维数组,其中第一个位置为“ empty”元素。要创建真正空白的2D阵列,需要将其删除。

<?php
    $emptyArray = array(array());  // Creates a 2D array with one empty element in $emptyArray[0]
    array_pop($emptyArray);        // Pops element[0] off the array
?>
// dynamic 2D array

$twoD = array(array());
$val = 0;

// fill the array
for($r = 0; $r < 4; $r++) {
    for($c = 0; $c < 4; $c++) 
        $twoD[$r][$c] = $val++;
}

// print the current value of $val
echo $val."<br/>------------------<br/>";

// print the array  
for($r = 0; $r < 4; $r++) {
    for($c = 0; $c < 4; $c++) 
        echo $twoD[$r][$c];
    echo "<br/>";
}

请记住,无论何时使用array(array())嵌套函数或short数组语法,[[]]两者都将创建一个2D数组,其中empty元素位于第一个位置。这可能会给您带来一些错误,因此我们需要将其删除。

我们如何删除empty元素?

好吧,绝对简单的array_pop()方法是调用方法弹出element[0]数组,如下所示:

<?php
    $a = array(array());
    echo 'Before removing the empty element: \n'
    print_r($a);
    array_pop($a);
    print_r($a);

    $b = [[]];
    echo 'Before removing the empty element: \n'
    print_r($b);
    array_pop($b);
    print_r($b);
?>
本文地址:http://php.askforanswer.com/zaiphpzhongchuangjianyigekongde2dshuzu.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!