首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PHP中工作(创建和访问)空的2D数组

如何在PHP中工作(创建和访问)空的2D数组
EN

Stack Overflow用户
提问于 2018-02-01 06:15:59
回答 1查看 41关注 0票数 0

我想在PHP中定义一个新的2D数组(以便在稍后的循环中填充和访问它),但我遇到了处理它的问题。我浏览了一些文章(e.g. here),但它仍然不适用于我。

我的代码是:

代码语言:javascript
复制
$part = array(array());
for ($i=0; $i<4; $i++) {
    for ($j=0; $j<3; $j++) {
        $part[$i][$j]=3;
    }
}

for ($i=0;  $i<4; $i++) {
    for ($j=0; $j<3; $j++) {
        echo "values i=$i, j=$j: $part[$i][$j]\n<br>";
    }
} 

上面代码的结果是:

代码语言:javascript
复制
Notice: Array to string conversion in /var/www/html/ftth1/sandbox.php on line 43
values i=0, j=0: Array[0]

Notice: Array to string conversion in /var/www/html/ftth1/sandbox.php on line 43
values i=0, j=1: Array[1]

Notice: Array to string conversion in /var/www/html/ftth1/sandbox.php on line 43
values i=0, j=2: Array[2]

Notice: Array to string conversion in /var/www/html/ftth1/sandbox.php on line 43
values i=1, j=0: Array[0]
...

输出中提到的第43行是:

代码语言:javascript
复制
echo "values i=$i, j=$j: $part[$i][$j]\n<br>";

我试着使用上面提到的文章中的代码,但结果是一样的:

代码:

代码语言:javascript
复制
$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();
        echo "$a[$c][$r] \n<br>";
    }
}

结果:

代码语言:javascript
复制
Notice: Array to string conversion in /var/www/html/ftth1/sandbox.php on line 55
Array[0]

Notice: Array to string conversion in /var/www/html/ftth1/sandbox.php on line 55
Array[1]

Notice: Array to string conversion in /var/www/html/ftth1/sandbox.php on line 55
Array[2]

Notice: Array to string conversion in /var/www/html/ftth1/sandbox.php on line 55
Array[0]
...

上面提到的55行是:

代码语言:javascript
复制
echo "$a[$c][$r] \n<br>";

有人能帮我解决这个问题吗?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-02-01 06:18:53

如果在字符串插值中使用“复杂”表达式,则需要使用大括号。

代码语言:javascript
复制
    echo "values i=$i, j=$j: {$part[$i][$j]}\n<br>";

请注意$part[$i][$j]部件周围的{ ... }

一个表达式一旦超过了一个普通的变量名,它就会变得“复杂”。

参见PHP manual on string interpolation syntax syntax

请注意,复杂的语法也可以用于普通变量,即您可以使用{$i} ... {$j}来保持一致性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48552360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档