听老歌 发表于 2011-06-11 15:08

数组的常用函数

数组的常用函数001 <?php

002 /* 数组的常用函数

003*

004*数组的排序函数

005*    sort()

006*    rsort()

007*    usort()

008*    asort()

009*    arsort()

010*    uasort()

011*    ksort()

012*    krsort()

013*    uksort()

014*    uatsort()

015*    natcasesort()

016*    array_multisort()

017*

018*   1.简单的数组排序

019*       sort() rsort()

020*   2.根据键名对数组排序

021*       ksort() krsort()

022*   3.根据元素的值对数组排序

023*       asort() arsort()

024*   4.根据"自然数排序“法对数组排序

025*       natsort()//区分大小写字母比较 natcasescort()//不区分大小写字母的比较

026*   5.根据用户自定义规则对数组排序

027*       usort() uasort() uksort()对键排序

028*   6.对维数组的排序

029*       array_multisort()

030*

031*拆分、合并、分解、接合的数组函数

032*   1.array_slice()

033*   2.array_splice()//删除

034*   3.array_combine()//合并

035*   4.array_merge();//合并

036*   5.array_intersect();//多个数组的交集

037*   6.array_diff();//返回多个数组的差集

038*

039*数组与数据结构的函数

040*    1.使用数组实现堆栈 //先进后出

041*      array_push() array_pop()

042*    2.使用数组实现队列 //先进先出

043*      array_unshift() array_shift() unset()

044*

045*   

046*其他与数组操作有关的函数

047*   array_rand()

048*   shuffle()

049*   array_sum()

050*   range()

051*/

052   

053 //简单数组排序的使用

054 $data=array(5,8,1,7,2);

055 sort($data);//元素由小到大进行排序

056 print_r($data);//Array ( => 1 => 2 => 5 => 7 => 8 )

057 rsort($data);//元素由大到小进行排序

058 print_r($data);//Array ( => 8 => 7 => 5 => 2 => 1 )

059   

060 //根据键名排序的例子

061 $data_2=array(5=>"five",8=>"eight",1=>"one",7=>"seven",2=>"two");

062 ksort($data_2);//对数组的下标进行由小到大排序

063 print_r($data_2);//Array ( => one => two => five => seven => eight )

064 krsort($data_2);//对数组的下标进行由大到小排序

065 print_r($data_2);//Array ( => eight => seven => five => two => one )

066   

067   

068   

069 //根据元素的值对数组排序

070 $data_3=array("1"=>"Linux","a"=>"Apache","m"=>"MySQL","l"=>"PHP");

071 //asort() arsort与 sort() rsort()的区别在于 前者排序后保持原有的键名,后者不保持原有键名,且键名从0开始

072 asort($data_3);

073 print_r($data_3);//Array ( => Apache => Linux => MySQL => PHP )

074 echo '<br/>';

075 arsort($data_3);

076 print_r($data_3);//Array ( => PHP => MySQL => Linux => Apache )

077 echo '<br/>';

078 sort($data_3);

079 print_r($data_3);//Array ( => Apache => Linux => MySQL => PHP )

080 echo '<br/>';

081 rsort($data_3);

082 print_r($data_3);//Array ( => PHP => MySQL => Linux => Apache )

083   

084 //根据”自然数排序法“对数组排序(0-9短者优先)

085 $data_4=array("file.txt","file11.txt","file2.txt","file22.txt");

086 sort($data_4);

087 print_r($data_4);//Array ( => file.txt => file11.txt => file2.txt => file22.txt )

088 echo '<br>';

089 natsort($data_4);

090 print_r($data_4);//Array ( => file.txt => file2.txt => file11.txt => file22.txt )

091 echo '<br>';

092 natcasesort($data_4);

093 print_r($data_4);//Array ( => file.txt => file2.txt => file11.txt => file22.txt )

094 echo '<br>';

095   

096 //用户自定义排序函数

097 echo '<br/>';

098 $data_5=array("Linux","Apache","MySQL","PHP");

099 usort($data_5,"sortbylen");//通过元素长度排序

100 print_r($data_5);//Array ( => PHP => MySQL => Linux => Apache )

101 function sortbylen($one,$two){

102   if(strlen($one)==strlen($two))

103         return 0;

104   else

105         return (strlen($one)>strlen($two))?1:-1;

106 }

107   

108 //拆分、合并、分解、接合的数组函数

109 echo '<br/>';

110 $data_6=array("Linux","Apache","MySQL","PHP");

111 print_r(array_slice($data_6,1,2));//取下标为1、2的元素

112 //Array ( => Apache => MySQL ) 下标重置从0开始

113 echo '<br/>';

114   

115 print_r(array_slice($data_6,-2,1));//从后边的第二个开始取返回一个,不是从0开始的

116 //Array ( => MySQL ) 下标重置从0开始

117 echo '<br/>';

118   

119 print_r(array_slice($data_6,1,2,true));

120 //Array ( => Apache => MySQL )保留原有的下标

121   

122 echo '<br/>';

123   

124   

125 //array_combine()

126 $a1=array("OS","WebServer","DataBase","Language");

127 $a2=array("Linux","Apache","MySQL","PHP");

128   

129 print_r(array_combine($a1,$a2));//第一个参数作为键名,第二个作为值来合并

130 //Array ( => Linux => Apache => MySQL => PHP )   

131   

132 echo '<br/>';

133   

134 //array_merge()

135 $a3=array("OS","WebServer","DataBase","Language");

136 $a4=array("Linux","Apache","MySQL","PHP");

137 $a5=$a3+$a4;

138 print_r($a5);//因为两个数组下标重复所以显示这样

139 //Array ( => OS => WebServer => DataBase => Language )

140 echo '<br/>';

141 print_r(array_merge($a3,$a4));//合并并重新索引

142 //Array ( => OS => WebServer => DataBase => Language => Linux => Apache => MySQL => PHP )   

143   

144 echo '<br/>';

145   

146 //array_intersect()

147 $a7=array("OS","WebServer","DataBase","Language",1,2,3);

148 $a8=array("Linux","Apache","MySQL","PHP",2,3,4);

149 print_r(array_intersect($a7,$a8));//Array ( => 2 => 3 )

150 echo '<br/>';

151   

152 //array_diff()

153 $a9=array(1,2,3,4);

154 $a10=array(3,4,5,6);

155 print_r(array_diff($a9,$a10));//Array ( => 1 => 2 )   

156 //返回第一个数组跟第二个相差的元素

157 echo '<br/>';

158   

159   

160 //使用数组实现堆栈

161 $b=array(1,2,3,4);

162 $b[]="a";//入栈

163 array_push($b,"b","c");//使用函数入栈

164 print_r($b);//Array ( => 1 => 2 => 3 => 4 => a => b => c )

165 echo '<br/>';

166   

167 $value=array_pop($b);//使用函数出栈

168 print_r($b);//Array ( => 1 => 2 => 3 => 4 => a => b )

169 echo '<br/>';

170 echo $value;//显示出栈的元素的值 c

171 echo '<br/>';

172   

173 //使用数组实现队列

174 $c=array(1,2,3);

175 print_r($c);//Array ( => 1 => 2 => 3 )

176 echo '<br/>';

177 array_unshift($c,"abc","bcd");//入队

178 print_r($c);//Array ( => abc => bcd => 1 => 2 => 3 )   

179 echo '<br/>';

180 $values=array_shift($c);//出队

181 print_r($c);// Array ( => bcd => 1 => 2 => 3 )

182 echo '<br/>';

183 unset($c);//删除指定位置元素

184 print_r($c);//Array ( => bcd => 1 => 3 )

185 echo '<br/>';

186   

187   

188 //array_rand()随机返回数组下标

189 $arr=array(1,3,4,5,76,7,99,6,2,3);

190 echo array_rand($arr);//返回的是随机的数组元素的下标

191 echo $arr;//随机显示数组元素的值

192 echo '<br/>';

193 //shuffle()随机重新排列数组

194 $arr2=array(32,35,33);

195 shuffle($arr2);

196 print_r($arr2);//数组元素位置随机变换

197 echo '<br/>';

198 //array_sum()求和

199 $arr3=array(1,3,5);

200 echo array_sum($arr3); //返回9

201 echo '<br/>';

202 print_r($arr3);//Array ( => 1 => 3 => 5 )

203 echo '<br/>';

204 //range(最小值,最大值,步长)

205 $arr4=range(0,100,10);

206 print_r($arr4);//Array ( => 0 => 10 => 20 => 30 => 40 => 50 => 60 => 70 => 80 => 90 => 100 )   

207   

208 ?>
页: [1]
查看完整版本: 数组的常用函数