-1

每个人。我在我的测试 php 中编写了这段代码。一旦我在浏览器中执行,它只会显示数组的首字母。更进一步,这是我的代码:

$args = array ('computer'=>'pentium', 'notebook'=>'atom', 'gadget'=>'tab'); foreach ($args as $key => $val) {echo $key['val'];}

我的浏览器中的结果是“cng”,我认为 c = 计算机,n = 笔记本,g = gadget。

那么,有人会解释我怎么会发生这种情况吗?

提前致谢

4

2 回答 2

8

PHP 正在评估并$key['val']$key[0]您提供每个“键”的第一个字母

在您的示例中,$key它不是一个数组,它是一个包含 的字符串computernotebook或者gadget用于通过$args. PHP 计算'val'为整数,因为您在字符串上调用数组键语法。

来自PHP 文档

可以通过使用方数组括号指定字符串后所需字符的从零开始的偏移量来访问和修改字符串中的字符,如 $str[42]。为此,将字符串视为字符数组。当您想要提取或替换超过 1 个字符时,可以使用函数 substr() 和 substr_replace()。

于 2013-07-10T13:42:49.953 回答
0

“Foreach”循环根据数组的长度迭代数组。它将数组中的值和键分开并将它们转换为字符串,例如,当循环迭代时,它会给出以下输出。

     echo $key; // "computer"
     echo $val; // "pentium"

您可以通过在每次迭代中仅使用 $val 来获得价值。因此,在每次迭代之后,都会根据数组中的值生成新的 $key 和 $value 对。希望你能明白。

于 2013-07-10T14:02:34.880 回答