获取PHP数组中的索引位置值


Get index position value in PHP array

我很困惑,为什么在以下两个代码块中,打印$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

有多余的空格:

$arr=array('type'=>' review');   
                    ^-- right there

我认为它在打印空格,你看不到,因为HTML是空白不敏感的。

也有可能PHP抛出警告。像索引数组一样索引字符串通常是一个bug。确保你已经打开了错误和通知

在您的第一个代码块中,$arr=array('type'=>' review');在第一个单引号和r之间有一个空格。这就是为什么你的第一个代码块似乎什么也没打印出来,因为它打印的是一个空格字符。

将此代码更改为$arr=array('type'=>'review');以修复此问题

实际上它做同样的事情。注意第一个代码块中的空格:

$arr = array('type' => ' review');
// ---------------------^
print_r($arr);
echo '<br>';
print_r($arr['type'][0]);

print_r打印数组信息。传递给print_r的数组是一个字符数组,这就是字符串的全部内容。[0]表示"r",[1]表示"e",以此类推。这就是为什么print_r($arr['type'])显示完整的字符串,并且添加第二个索引在您提供的任何索引处显示适当的字符。