每个人。我在我的测试php中编写了这段代码。一旦我在浏览器中执行,它只显示数组的首字母。更进一步,这里是我的代码:
$args = array ('computer'=>'pentium', 'notebook'=>'atom', 'gadget'=>'tab');
foreach ($args as $key => $val)
{echo $key['val'];}
在我的浏览器中得到的结果是"cng",我认为c=电脑,n=笔记本,g=小工具。
那么,有人能解释一下这是怎么发生的吗?
提前感谢
PHP将$key['val']
评估为$key[0]
,并为您提供每个"密钥"的第一个字母
在您的示例中,$key
不是一个数组,它是一个字符串,包含通过$args
的各个迭代的computer
、notebook
或gadget
。PHP将'val'
计算为整数,因为您正在对字符串调用数组键语法。
来自PHP文档
可以通过指定来访问和修改字符串中的字符使用方括号,如$str[42]中所示。将字符串想象为数组用于此目的的字符数。函数substr()和当您想要提取或替换更多内容时,可以使用substra_replace()超过1个字符。
"Foreach"循环根据数组的长度遍历数组。它分离数组中的值和键,并将它们转换为字符串——例如,在循环给出以下输出后进行迭代的情况下。
echo $key; // "computer"
echo $val; // "pentium"
您可以通过在每次迭代中只使用$val来获得值。因此,在每次迭代之后,都会根据数组中的值出现一对新的$key和$value。希望你得到它。