我很担心为什么在以下两个代码块中,打印$arr
会提供相同的输出但$arr['type'][0]
却没有。请注意第二个代码块输出中的r
:
$arr=array('type'=>' review');
print_r($arr);
echo '<br>';
print_r($arr['type'][0]);
$arr['type']='review';
print_r($arr);
echo '<br>';
print_r($arr['type'][0]);
输出
Array ( [type] => review )
Array ( [type] => review )
r
答案 0 :(得分:2)
还有一个额外的空间:
$arr=array('type'=>' review');
^-- right there
我认为它正在打印你看不到的空间,因为HTML对空格不敏感。
PHP也可能会发出警告。索引字符串就像它是一个数组通常是一个错误。确保您已收到错误并通知。
答案 1 :(得分:2)
在您的第一个代码块中,$arr=array('type'=>' review');
在第一个单引号和审核中的r之间有一个空格。这就是为什么你的第一个代码块似乎什么都不打印,因为它打印出一个空格字符。
将该代码更改为$arr=array('type'=>'review');
以解决此问题。
答案 2 :(得分:1)
实际上它做同样的事情。注意第一个区块中的空间:
$arr = array('type' => ' review');
// ---------------------^
print_r($arr);
echo '<br>';
print_r($arr['type'][0]);
答案 3 :(得分:0)
print_r打印阵列上的信息。您传递print_r的数组是一个字符数组,这是一个字符串。 [0]显示'r',[1]显示'e',依此类推。这就是print_r($ arr ['type'])显示完整字符串并添加第二个索引显示您提供的任何索引的相应字符的原因。