返回单个字符的多维数组键,而不是值

时间:2009-05-14 03:01:38

标签: php

我在PHP编码中再次看到这个问题,我从来不知道发生了什么。

$val = $matches[1][$i]

在此示例中,$ i = 0(在for循环中设置),并且数组的该维度中保存的值是一个字符串。而不是将该字符串分配给$ val,$ val将被赋予字符串中的第0个(第一个)字符。如果$ i = 1,则为$ val分配字符串中的第一个(第二个)字符,等等。

为什么PHP会将其视为子字符串操作,而不是返回字符串?如何获取字符串值而不是该字符串中的单个字符?

3 个答案:

答案 0 :(得分:4)

你确定它是一个多维数组吗?我认为如果你访问一个像数组一样的字符串,它会返回字符串中键位置的字符,这可能是你的问题。检查你的作业和诸如此类的东西,并确保你没有意外地将字符串分配给$ matches [1]而不是字符串数组。

答案 1 :(得分:0)

这很奇怪!我从来没有遇到过这种情况。我想知道多维是否只是一个普通的数组。它可能是使用你的[$ i]返回一个子字符串,如果它只是一个维度。

答案 2 :(得分:-1)

伙计,我知道它很晚但请检查

$matches[] = "value";

如果你缺少[],那么它将被视为一个字符串,因此应该是你的问题。