大家。我在我的测试php中编写了这段代码。一旦我在浏览器中执行,它只显示数组的第一个字母的首字母。进一步说,这是我的代码:
$args = array ('computer'=>'pentium', 'notebook'=>'atom', 'gadget'=>'tab');
foreach ($args as $key => $val)
{echo $key['val'];}
我的浏览器中的结果是“cng”,我认为c = computer,n = notebook,g = gadget。
所以,有人会解释我怎么会发生这种情况?
提前致谢
答案 0 :(得分:8)
PHP正在评估$key['val']
为$key[0]
,并为您提供每个“密钥”的第一个字母
在您的示例中,$key
不是数组,它是一个包含computer
,notebook
或gadget
的字符串,用于$args
的相应迭代。 PHP将'val'
评估为整数,因为您在字符串上调用数组键语法。
可以通过指定来访问和修改字符串中的字符 字符串使用后所需字符的 从零开始的偏移量 方阵数括号,如$ str [42]。将字符串视为数组 为此目的的字符。函数substr()和 当您想要提取或替换更多时,可以使用substr_replace() 超过1个字符。
答案 1 :(得分:0)
“Foreach”循环根据其长度迭代数组。它将数组中的值和键分隔开,并将它们转换为字符串,例如在循环迭代时,它会给出以下输出。
echo $key; // "computer"
echo $val; // "pentium"
你可以在每次迭代中使用$ val来获得价值。因此,在每次迭代之后,根据数组中的值,将有一对$ key和$ value。希望你明白。