php关联数组和索引数组差别

没有查到明确的php中定义关联数组/索引数组的解析,根据phpdocument及百度的一些资料和实际的代码测试,对关联数组/索引数据进行定义解析。这个问题主要在和手机端ios app产品提供api时遇到,用关联数组转换为json能更好的用oc解析转换为数组。

关联数组:没有明确的索引键,默认从0开始作为索引键。

$temp_arr = array (

‘已经在别处买到‘,

‘商品不符合需求‘,

‘价格太高‘,

‘不想买了‘,

‘卖家没有交易记录‘,

‘其他原因‘,

);

$temp_arr[0] = ‘已经在别处买到‘;

$temp_arr[1] = ‘商品不符合需求‘;

按print_f()打印数组:

Array ( [0] => 已经在别处买到 [1] => 商品不符合需求 [2] => 价格太高 [3] => 不想买了 [4] => 卖家没有交易记录 [5] => 其他原因 )

转换为json输出:

["\u5df2\u7ecf\u5728\u522b\u5904\u4e70\u5230","\u5546\u54c1\u4e0d\u7b26\u5408\u9700\u6c42","\u4ef7\u683c\u592a\u9ad8","\u4e0d\u60f3\u4e70\u4e86","\u5356\u5bb6\u6ca1\u6709\u4ea4\u6613\u8bb0\u5f55","\u5176\u4ed6\u539f\u56e0"]

索引数组:有明确的索引键,形成键值对关系。

$temp_arr = array (

‘1‘ => ‘已经在别处买到‘,

‘2‘ => ‘商品不符合需求‘,

‘3‘ => ‘价格太高‘,

‘4‘ => ‘不想买了‘,

‘5‘ => ‘卖家没有交易记录‘,

‘6‘ => ‘其他原因‘,

);

按print_f()打印数组:

Array ( [1] => 已经在别处买到 [2] => 商品不符合需求 [3] => 价格太高 [4] => 不想买了 [5] => 卖家没有交易记录 [6] => 其他原因 )

转换为json输出:

{"1":"\u5df2\u7ecf\u5728\u522b\u5904\u4e70\u5230","2":"\u5546\u54c1\u4e0d\u7b26\u5408\u9700\u6c42","3":"\u4ef7\u683c\u592a\u9ad8","4":"\u4e0d\u60f3\u4e70\u4e86","5":"\u5356\u5bb6\u6ca1\u6709\u4ea4\u6613\u8bb0\u5f55","6":"\u5176\u4ed6\u539f\u56e0"}

时间: 2024-08-02 12:54:57

php关联数组和索引数组差别的相关文章

类中属性返回形式(对象,关联数组,索引数组)

class A { public $x, $y; function __construct($x, $y)  { $this->x = $x; $this->y = $y; } function get_value($arr = true)  { if($arr == 'arr')   { // 类中属性以关联数组形式转换返回 return get_object_vars($this); }else if($arr == 'obj')   { //类中属性以对象形式返回 return $thi

关联数组VS索引数组

关联数组和常规说的数组类似,它包含标量抄数据,可用索引值来单独选择这些数据,和常规数组不同的是, 关联数组的索引值不是非负的整数而是任意的标量袭.这些标量称为百Keys,可以在以后用于检索数组中的数值. 关联数组的元素没有特定的顺序,你可以把它们想象为一组卡片度.每张卡片上半部分是知索引而下半部分是数值. 关联数组是Perl语言中特有的,关联数组是一个功能强大的数组.使用关联数组时要在前面加上%号,道关联数组的格式如: %ARRAY=(key1,value1,key2,value2,key3,v

关于关联数组和索引数组的性能测试

在知乎上看到下面这段代码:http://www.zhihu.com/question/21589942 作者说这两者有区别,但是在最新的chrome下运行其实没有区别,都是第一次比较慢,2000ms出头,第二次都是200ms出头 var arr = new Array(50000000); var arr2 = {}; function runObject() { var i; console.time("Object"); for (i = 0; i < 50000000; i

PHP------定义数组,取值数组和遍历数组

PHP数组 特点:可以存储任意类型的数据,可以不连续,可以是索引的也可以是关联的 什么是索引? 就是常见数组的样式,索引从开始,0,1,2,3,定义数组是直接往里面放值,只个索引自动生成,所以一般从0开始的,这样的数组是索引数组,索引是连续的. 什么是关联? 就是我们的哈希表集合,在定义的时候,必须给它一个key,一个values,这两个是关联的,通过key对应的values值是关联的. 1.定义数组 定义数组的第一种方式: 定义简单地索引数组 $a = array(1,2,3); 定义数组的第

JS数组与PHP数组的对比

一.分类与创建 1:JS的数组都是索引数组,数组是一种特殊的对象,创建数组的方式有两种 //方式一 var arr1 = ['关羽', '张飞', '赵云', '马超', '黄忠']; //方式二 var arr2 = new Array(); arr2[0] = '关羽'; arr2[1] = '张飞'; arr2[2] = '赵云'; arr2[3] = '马超'; arr2[4] = '黄忠'; 2:PHP数组分为索引数组和关联数组,创建方式也有两种 //方式一(索引数组) $arr1 =

数组与遍历数组

断断续续地学习了php有一段时间了,总是不能很好地理解,如今把数组和遍历数组整理出来. 从基础开始说起: php数组分为索引数组,和关系型数组, 索引数组就是下标从0,1,2,3,4...开始,而关系型数组则非,理解为带key的(key为键) 开始写一个数组: $userNane = array('陈云','罗鑫','袁修成'); 当然也可以这样写: $userNane[0] = '陈云'; $userNane[1] = '罗鑫'; $userNane[2] = '袁修成'; 现在来遍历这个数组

JS 索引数组、关联数组和静态数组、动态数组

1 JS 索引数组.关联数组和静态数组.动态数组 2 3 数组分类: 4 5 1.从数组的下标分为索引数组.关联数组 6 7 var ary1 = [1,3,5,8]; 8 //按索引去取数组元素,从0开始(当然某些语言实现从1开始) 9 //索引实际上就是序数,一个整型数字 10 alert(ary1[0]); 11 alert(ary1[1]); 12 alert(ary1[2]); 13 alert(ary1[3]); 14 15 16 var ary2 = {}; 17 //存取时,以非

【tp5】索引数组转成关联数组 ( $a=[],转换成 $a[&#39;aa&#39;=&gt;2,&#39;bb&#39;=&gt;&#39;3c&#39;] )

概念: 索引数组 ==== >>>$arr = []; 关联数组 ====>>> $arr = [ 'orange'=>1,'apple'=>'good'  ]; 1.在tp5之前的tp3.2,我们知道索引数组转关联数组,是直接可以转成功的,因为php是弱语言类型. 2.在tp5之后,索引数组不能直接转关联数组,必要通过isset进行判断,然后才能给转成关联数组. 否则,tp5会报错: 未定义数组索引: aa 如何避免这个错误呢? 可以isset进行判断['

《Inside C#》笔记(六) 属性、数组、索引器

一 属性 a) 属性可用于隐藏类的内部成员,对外提供可控的存取接口.属性相当于有些语言的getter.setter方法,只是使用起来更加方便一点,而且查看对应的IL码可以看到,属性的本质也确实是方法. b) 通过只提供get,可以让属性只读.只写属性也可以,但没有用过. c) 属性除了用来控制对类成员的访问外,还可以在get或set的时候通过编码进行一些附加的动作. d) 属性也可以被继承.重写. 二 数组 a) 在C#中,所有数组都继承自System.Array类.数组也是对象,所以声明的数组