本文目录
- php 索引数组和关联数组的区别
- php怎么把关联数组转成索引数组
- php中怎样向关联数组的指定位置插入另一个数组的元素
- php判断数组是关联数组还是数值数组
- 请问php中什么是关联数组
- php 如何将查询的结果集放到关联数组
php 索引数组和关联数组的区别
索引数组是数字下标;关联数组是键值下标。关联数组操作起来比较方便,而且信息量相对来说大些
php怎么把关联数组转成索引数组
PHP和PERL、VB不同,其只有“数组”,没有单独的“关联数组”类型,实际上PHP的所有数组都是关联数组,当没有指定键值的时候,键值为0、1、2??
php中定义数组的方法:
PHP定义数组的格式
数组名=array();
如:$aa=array();//这样就定义了一个数组,
之后给元素赋值:
$aa="9016";
$aa="9017";
$aa="9018";
PHP输出数组的方法:
foreach($aa as $val)
{echo$val;}
也可以在定义数组时直接赋值
$aa=array(0=》"9016",1=》"9017";2=》"9018");
PHP的数组还可以用字符做下标,不一定要数字.
$aa="Joan";
$aa="9018";
$aa="abc@abc.com";
也可以这样
$aa=array("name"=》"joan","num"=》"9018","email"=》"abc@abc.com");
将一个一维数组的元素也定义为数组,就是一个二维数组,
$aa=array(0=》"a1",1=》"a2");
$bb=array(0=》"b1",1=》"b2");
$cc=array(0=》$aa;1=》$bb);此时,$cc也是一个数组,$cc就是一个二维数组。
同理,三维,四维数组也可以继续定义下去。
数组的元素不仅于数字和字符串,可以是类的对象。
php中怎样向关联数组的指定位置插入另一个数组的元素
这个功能需求来自于网站运营策略,举倒子:在一个排行列表中,默认有以下元素,顺序有一定的依据,假设是按下载次数排列。$rows = array( array(’name’=》’QQ2010’), array(’name’=》’QQ2009’), array(’name’=》’迅雷5’), array(’name’=》’飞信2010’), array(’name’=》’Kugoo2010’), array(’name’=》’TTplayer’), array(’name’=》’Firefox4.0’), array(’name’=》’美图秀秀’), array(’name’=》’360safe’), array(’name’=》’Chrome6’));如果有一个客户想买花10元/元下我们第二个位置,可以大家想,直接把QQ2009替换掉不就完事了吗。不,那样的话用户体验并不好,明明QQ2009是一个下载次数比较多的软件,为什么在列表中却没有了呢。其实我们真正的需求是把QQ2009以下的单元都往后推,腾出第二个位置来给了,谁叫他们付费买我们的位置呢,呵呵。再说到程序原理上来吧,PHP要实现这个需求,挺简单,用数组函数array_splice就可以了,具体用法参照PHP手册。给一个完整的例子吧:《?php$rows = array( array(’name’=》’QQ2010’,), array(’name’=》’QQ2009’,), array(’name’=》’迅雷5’,), array(’name’=》’飞信2010’,), array(’name’=》’Kugoo2010’,), array(’name’=》’TTplayer’,), array(’name’=》’Firefox4.0’,), array(’name’=》’美图秀秀’,), array(’name’=》’360safe’,), array(’name’=》’Chrome6’,),);$pop = array( ’2’=》array(’name’=》’可牛杀毒’), ’5’=》array(’name’=》’金山词霸2010’),);foreach($pop as $key=》$p){ array_splice($rows, $key-1, 0, array($p));}var_dump($rows);?》最近的结果是:array(12) { =》 array(1) { =》 string(6) "QQ2010" } =》 array(1) { =》 string(8) "可牛杀毒" } =》 array(1) { =》 string(6) "QQ2009" } =》 array(1) { =》 string(5) "迅雷5" } =》 array(1) { =》 string(12) "金山词霸2010" } =》 array(1) { =》 string(8) "飞信2010" } =》 array(1) { =》 string(9) "Kugoo2010" } =》 array(1) { =》 string(8) "TTplayer" } =》 array(1) { =》 string(10) "Firefox4.0" } =》 array(1) { =》 string(8) "美图秀秀" } =》 array(1) { =》 string(7) "360safe" } =》 array(1) { =》 string(7) "Chrome6" }}
php判断数组是关联数组还是数值数组
具体思路:获取数组的所有键:“array_keys()” 遍历所有键判断是否按照顺序从0开始每个增一。 具体方法如下: function _checkAssocArray($arr) { $index = 0;foreach (array_keys($arr) as $key) {if ($index++ != $key) return false; }return true; }逻辑很简单,关联数组的键不会全部都按照:0,1,2,3…的顺序递增,如果它确实这样,那么和数值数组没有任何区别,相同处理即可。网上有另外一种思路:将数组所有的键与一个(0,数组长度)的新数组求差,
请问php中什么是关联数组
$array=array(1,2,3,’k’=》’6’);echo $array;//输出6,这就是关联数组,注意K与6的关系
php 如何将查询的结果集放到关联数组
$rs=mysql_query($sql);while($row=mysql_fetch_array($rs)){ $rows=$row;}print_r($rows);