JS数组与PHP数组的对比

版权声明:独学而无友,则孤陋寡闻。q群582951247 https://blog.csdn.net/mp624183768/article/details/87899800

一、分类与创建

1:JS的数组都是索引数组,数组是一种特殊的对象,创建数组的方式有两种

//方式一
var arr1 = ['关羽', '张飞', '赵云', '马超', '黄忠']; 
//方式二
var arr2 = new Array();
arr2[0] = '关羽';
arr2[1] = '张飞';
arr2[2] = '赵云';
arr2[3] = '马超';
arr2[4] = '黄忠';
//方式三
var arr3 = new Array('关羽', '张飞', '赵云', '马超', '黄忠');

js数组只能通过'[]'访问属性。

2:PHP数组分为索引数组和关联数组,创建方式也有两种

//方式一(索引数组)
$arr1 = ['关羽', '张飞', '赵云', '马超', '黄忠']; 
//方式二(关联数组)
$arr2 = array('一'=>'关羽', '二'=>'张飞', '三'=>'赵云', '四'=>'马超', '五'=>'黄忠');

php能通过'[]'和'{}'访问。

二、JS数组赋值是引用传递,而PHP赋值的是一个副本

$arr1 = array('关羽', '张飞', '赵云', '马超', '黄忠');
$arr2 = &$arr1; //引用传递
$arr1[5] = '魏延';
echo $arr1 === $arr2; //仍然输出1,$arr2随$arr1改变

三、由于JS不支持关联数组,所以PHP中json_encode()只将索引数组转为数组格式,而将关联数组转为对象格式。

$arr1 = array('one', 'two', 'three', 'four', 'five'); 
echo json_encode($arr1);  //索引数组转换为数组格式["one","two","three","four","five"]
$arr2 = array('1'=>'one', '2'=>'two', '3'=>'three', '4'=>'four', '5'=>'five');
echo json_encode($arr2); //关联数组转换为对象格式 {"1":"one","2":"two","3":"three","4":"four","5":"five"}

猜你喜欢

转载自blog.csdn.net/mp624183768/article/details/87899800