由于preg_match_all
,我有以下内容Array ( [0] => Array ( [0] => $9.70 [1] => $10 [2] => $11.95 [3] => $0.49 [4] => $2.95 [5] => $2.95 [6] => $2.95 [7] => $2.95 [8] => $0.49 [9] => $9.70 ) )
我正在尝试在foreach循环中打印它们但只获得第一个字符。
以下是我正在尝试的内容:
$i = '0';
foreach ($matches[0] as $val) {
echo $val[$i].'<br />';
$i++;
}
我哪里错了?
答案 0 :(得分:3)
试
foreach ($matches[0] as $val) {
echo $val.'<br />';
}
答案 1 :(得分:2)
尝试
foreach ($matches[0] as $val) {
echo $val.'<br />';
}
由于$i
已包含您的数组项,因此您不需要$val
。如果您执行$val[$i]
,则表示您正在访问字符串$val
中的某个字符。
答案 2 :(得分:1)
//它打印$ matches array
的所有值foreach ($matches[0] as $val)
{
echo $val.'<br />';
}
答案 3 :(得分:1)
foreach ($matches[0] as $val) {
echo $val;
}
答案 4 :(得分:1)
在PHP中foreach
的工作方式与您想象的不同。让我用下面的代码解释一下:
$matches = array('One', 'Two', 'Three');
foreach ($matches as $value) {
// The following code is called once for every array item, and $value is set to that array item
echo $value . '<br />';
}
此代码提供以下输出:
One
Two
Three
这是因为foreach主体为每个数组项调用一次,$ value设置为该数组项的值。使用您的代码只能看到第一个字符,因为PHP允许您使用数组语法从字符串中获取单个字符。长话短说,将代码更改为以下内容:
foreach ($matches[0] as $val) {
echo $val . '<br />';
}