在php应用中,数组是用得最广泛的数据结构了。基本可以这么说,熟练掌握数组你就可以熟练掌握php的大部分了。下面将php的数组操作进行汇总介绍下,或许有你不懂或不怎么了解的数组操作。
将数组的内部指针倒回一位:
/*** 将数组的内部指针倒回一位* @param array &$arr* @return mixed 返回前一个单元的值,当没有更多单元时返回 false* 如果数组包含空的单元,或者单元的值是 0 则本函数碰到这些单元也返回 false* 要正确遍历可能含有空单元或者单元值为 0 的数组,参见 each() 函数*/mixed prev(array &$arr);
把数组中的单元转换为变量:
array(key=>value);建立数组//显示数组print_r($array);//使用compact()函数新建数组,并把参数做为新数组的单元;$newarray = compact(red,green,yellow,blue,array);//使用extract()函数把数组中的单元转换为变量extract($exarray);echo $key1 $key2 $key3 $key4 $key5;
检查值、键:
array_key_exists($key,$array);//检查数组键in_array($value,$array);//检查值于数组
获取值:
//使用array_values()取得数组的值$carvalues = array_values($car);//取出数组的键名$twokeys = array_keys($two);key($array);//输出当前单元的键名//数组定义后,使用current()取得当前单元的值$red = current($array);list($red,$green) = $array;//把数组中的值赋与变量,$array = array(红色,绿色);each($two);//返回数组中当前单元的键和值
遍历数组:
foreach($two as $subarray);//遍历数组while(list($key,$value) = each($array)){ echo $key=>$value,;//使用each遍历数组}
填充数组:
//向左、右填充数组array_pad($array,+3,shuzhi);//2参数为正从左往右填充,数值大于单元数时才填充$array1 = array_fill(5,5,test);//使用array_fill()填充这个数组的值,值为test,从第5个单元开始填充,一共填充5个单元//填充数组键名$keys = array('string', 5, 10, 'str');$array3 = array_fill_keys($keys,数组值);//使用array_filp()函数交换键名与值$speed = array_flip($speed);//使用array_splice()函数替换第6个单元的值为7$output = array_splice($input,6,0,7);//使用array_splice()函数删除数组单元,只保留前5个单元$output = array_splice($input,5);$array1 = range(10,100,10); //使用range()函数的第三个参数,设置单元之间的步进值
排序:
shuffle($array);//将数组顺序打乱//使用array_multisort()对三个数组排序array_multisort($sort1,$sort2,$sort3);//把这个数组进行排序,并保持索引关系asort($array);//把测试数组进行逆向排序,并保持索引关系arsort($array);//使用ksort()对数组按键名排序ksort($array);//使用krsort()函数按键名逆向排序krsort($array);//使用sort()对测试数组进行排序[以键名排列]sort($array);//使用natsort()排序[自然排序,以数值排列]对单元数值大小写敏感natsort($array);//使用natcasesort()函数排序[自然排序]但是忽略数值大小写natcasesort($array);//使用array_reverse()函数排序,数组单元按相反排列$newarray = array_reverse($array,true);//true设时保留原键名
交集、差集:
//使用array_diff()计算三个数组的差集[对数组数值比较]$result = array_diff($dog1,$dog2,$dog3);//使用array_diff_assoc()计算三个数组的差集[对数值和键名比较]$result = array_diff_assoc($dog1,$dog2,$dog3);//使用array_diff_key()计算三个数组的差集[比较键名]$result = array_diff_key($dog1,$dog2,$dog3);//使用array_intersect()计算三个数组的交集[对数组数值比较]$result = array_intersect($dog1,$dog2,$dog3);//使用array_intersect_assoc()计算三个数组的交集[对数值和键名比较]$result = array_intersect_assoc($dog1,$dog2,$dog3);//使用array_intersect_key()计算三个数组的交集[比较键名]$result = array_intersect_key($dog1,$dog2,$dog3);
合并数组:
//使用array_merge()函数合并数组$result = array_merge($array1,$array2,$array3,$array4,$array5);array_rand($input,10);//随机取出10个单元count($array,count_recursive);//显示数组单元数目,2参数只可为1或者count_recursive,有时可遍历多维数组
出入栈:
//数组出栈,后进先出,数组最后一个单元弹出array_pop($array);//数组入栈,将7,8两个数值添加到数组尾部array_push($array,7,8);//将数组开头单元移出数组array_shift($array);//将7,8添加入数组开头array_unshift($array,7,8);
http://www.bkjia.com/phpjc/752385.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/752385.htmltecharticle在php应用中,数组是用得最广泛的数据结构了。基本可以这么说,熟练掌握数组你就可以熟练掌握php的大部分了。下面将php的数组操作进行...