所以一个简单的例子就是
$ar = array("some text","more text","yet more text");
foreach($ar as $value){
echo $value."<br>";
}
我得到了结果
some text
more text
yet more text
所以我的问题是当我们在foreach循环“$ ar as $ value”中执行此操作时, 我知道$ ar是数组,但第二个$ value是简单的 变量还是另一个数组?因为我们也可以通过以下方式做到这一点
foreach($ar as $value){
echo $value[0]."<br>";
}
哪会导致
s
答案 0 :(得分:1)
在PHP中,字符串是字节数组。引用0
的{{1}}位置是指字符串中的位置($value
)(0
中的s
)
您的实际数组如下所示:
Array ( [0] => some text [1] => more text [2] => yet more text )
如果要访问数组的索引位置,可以执行以下操作:
some test
将输出:
0 - some text 1 - more text 2 - yet more text
答案 1 :(得分:1)
$value
是数组中的值,除非您有嵌套数组(array(array('a','b'),array('b','c'))
),否则它本身不是数组。但是,订阅字符串仍然是可能的,这就是你获得字符串的第一个字符的方式。
答案 2 :(得分:1)
问题在于$value[0]
访问字符串的第一个字符。
字符串在内部表示为数组。因此,访问字符串的索引0就像访问第一个字符一样。
这就是它打印“s”的原因,因为你的字符串“some text”以s
开头您可以将您的示例视为以下
array(
[0] => array(
[0] => 's',
[1] => 'o',
[2] => 'm',
[3] => 'e',
//...
),
[1] => array(
[0] => 'm',
[1] => 'o',
[2] => 'r',
[3] => 'e',
//...
),
//...
);
答案 3 :(得分:1)
你应该
s m y
在不同的行上。
BTW br
标签是旧帽子。
答案 4 :(得分:1)
PHP中可以按字符进行字符串访问和修改。您需要知道的,可能不知道的是,虽然字符串表示为字符串,但有时它们可以被视为数组:让我们看一下这个例子:
$text = "The quick brown fox...";
现在,如果您要回显$text[0]
,您将获得字符串中的第一个字母,在这种情况下恰好是T
,或者如果您想要修改它,请执行{{1}然后你会将字母$text[0] = "A";
更改为"T"
这是PHP Manual的一个很好的教程,它向您展示如何通过将字符串视为数组来访问/修改字符串。
"A"
BTW:如果你只想显示数组中的第一个值,你可以使用
之类的东西<?php
// Get the first character of a string
$str = 'This is a test.';
$first = $str[0];
// Get the third character of a string
$third = $str[2];
// Get the last character of a string.
$str = 'This is still a test.';
$last = $str[strlen($str)-1];
// Modify the last character of a string
$str = 'Look at the sea';
$str[strlen($str)-1] = 'e';
?>