PHP的一个数组问题

<?php
$data['first'] = 'hello';
$data['first']['second'] = 'world';
echo $data['first'];
?>

输出是wello 求解

这个相当于类型的转换,把$data['first']这个字符串类型的变量转换成了数组类型,所以相当于$data['first'][0,1,2,3,4]
$data['first'][0] 输出wello
$data['first'][1] 输出hwllo
$data['first'][2] 输出hewlo
$data['first'][3] 输出helwo
$data['first'][4] 输出hellw

没看懂。。。 - - !
最新回答
乖我要你平安

2024-06-08 20:19:47

$data['first']="hello";//这个不用我多说
//这时候$data['first']是一个字符串,也相当于一个数组:$data['first']与$arr=array('h','e','l','l','o')相同,而第二句:
$data['first']['second']='world';//这个将它变成$arr就是$arr['second'],下标是个字符映射,其实和那'second'没什么关系,无论是什么都相当于$arr[0],也就是字符'h',$arr[0]='world';将'world'赋值后,只截取第一个字符,便将'h'替换为'w',最后就成了'wello';
//所以语句:
echo $data['first'];//输出为:wello;
//依此类推,$data['first'][1]='world';最后就成了'hwllo',把第二个字符替换了,等等。
意志以颓废

2024-06-08 14:02:47

<?php
$data['first'] = 'hello'; // 数组的值
$data['first']['second'] = 'world'; .// 数组的值是字符型,second 命名的第一个元素 改为 world 但是只能对其中的第一个字符有效。
echo $data['first']; // 显示数组的值
?>
傲忘天下

2024-06-08 19:33:58

$data['first'] = 'hello';
$data['first'] 是一个变量的名字
$data['first']['second'] = 'world';
$data['first'] 是一个数组的名字
你再输出$data['first'] 相当于打印一个数组
萌面人

2024-06-08 13:10:25

$data['first']['second']实际上表示的是字符串第一个元素,因为键名second无法识别,默认为0,当把一个字符串'world'赋值给一个字符串数组的第一个元素时,由于收到存储空间的限制,字符数组的第一个元素h被赋值为w后,后面的orld已经没空间可以存储,所以才会有上面的结果。

字符串数组跟其他的数组不同,默认情况下数组的长度就是字符串的长度,数组下标从0开始,每一个下标对应的键值只能是一个长度的字符【汉字字符串不一样,是3个】,这就是原因。
一只哀伤的猫

2024-06-08 13:19:57

你理解有误