请有人解释一下这是什么在PHP?

时间:2013-07-10 13:41:43

标签: php arrays

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

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

我的浏览器中的结果是“cng”,我认为c = computer,n = notebook,g = gadget。

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

提前致谢

2 个答案:

答案 0 :(得分:8)

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

在您的示例中,$key不是数组,它是一个包含computernotebookgadget的字符串,用于$args的相应迭代。 PHP将'val'评估为整数,因为您在字符串上调用数组键语法。

来自PHP Documentation

  

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

答案 1 :(得分:0)

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

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

你可以在每次迭代中使用$ val来获得价值。因此,在每次迭代之后,根据数组中的值,将有一对$ key和$ value。希望你明白。