PHP数组函数一扫而光(兼并,拆分,追加,查找,删去等)
1.兼并数组
array_merge()函数将数组兼并到一同,回来一个联合的数组。所得到的数组以第一个输入数组参数开端,按后边数组参数呈现的次序顺次迫加。这个函数将一个或多个数组的单元兼并起来,一个数组中的值附加在前一个数组的后边。回来作为成果的数组。
假如输入的数组中有相同的字符串键名,则该键名后边的值将掩盖前一个值。但是,假如数组包括数字键名,后边的值将不会掩盖原来的值,而是附加到后边。
假如只给了一个数组而且该数组是数字索引的,则键名会以接连方法从头索引。其方式为:arrayarray_merge(arrayarray1array2…,arrayN)
事例如下:
$fruits=array(“apple”,”banana”,”pear”);
$numbered=array(“1″,”2″,”3”);
$cards=array_merge($fruits,$numbered);
print_r($cards);
//output
//Array([0]=>apple[1]=>banana[2]=>pear[3]=>1[4]=>2[5]=>3)
?>
PHP数组函数介绍
2.追加数组
array_merge_recursive()函数与array_merge()相同,能够将两个或多个数组兼并在一同,构成一个联合的数组.两者之间的差异在于,当某个输入数组中的某个键己经存在于成果数组中时该函数会采纳不同的处理方法.array_merge()会掩盖前面存在的键/值对,替换为当时输入数组中的键/值对,而array_merge_recursive()将把两个值兼并在一同,构成一个新的数组,并以原有的键作为数组名。还有一个数组兼并的方式,便是递归追加数组。其方式为:arrayarray_merge_recursive(arrayarray1,arrayarray2[…,arrayarrayN])
程序实例如下:
$fruit1=array(“apple”=>”red”,”banana”=>”yellow”);
$fruit2=array(“pear”=>”yellow”,”apple”=>”green”);
$result=array_merge_recursive($fruit1,$fruit2);
print_r($result);
//output
//Array([apple]=>Array([0]=>red[1]=>green)[banana]=>yellow[pear]=>yellow)
?>
现在键apple指向一个数组,这个数组由两个颜色值组成的索引数组。
3.衔接数组
array_combine()函数会得到一个新数组,它由一组提交的键和对应的值组成。其方式为:
arrayarray_combine(arraykeys,arrayvalues)
留意,两个输入数组必须大小相同,不能为空。示例如下
$name=array(“apple”,”banana”,”orange”);
$color=array(“red”,”yellow”,”orange”);
$fruit=array_combine($name,$color);
print_r($fruit);
//output
//Array([apple]=>red[banana]=>yellow[orange]=>orange)
?>
4.拆分数组array_slice()
array_slice()函数将回来数组中的一部分,从键offset开端,到offset+length方位完毕。其方式:
arrayarray_slice(arrayarray,intoffset[,intlength])
offset为正值时,拆分将从距数组最初的offset方位开端;假如offset为负值,则拆分从距数组末尾的offset方位开端。假如省略了可选参数length,则拆分将从offset开端,一直到数组的最终一个元素。假如给出了length且为正数,则会在距数组最初的offset+length方位完毕。相反,假如给出了length且为负数,则在距数组最初的count(input_array)-|length|方位完毕。考虑一个比如:
$fruits=array(“Apple”,”Banana”,”Orange”,”Pear”,”Grape”,”Lemon”,”Watermelon”);
$subset=array_slice($fruits,3);
print_r($subset);
//output
//Array([0]=>Pear[1]=>Grape[2]=>Lemon[3]=>Watermelon)
?>
然后我们运用下负长度:
$fruits=array(“Apple”,”Banana”,”Orange”,”Pear”,”Grape”,”Lemon”,”Watermelon”);
$subset=array_slice($fruits,2,-2);
print_r($subset);
//output
//Array([0]=>Orange[1]=>Pear[2]=>Grape)
?>
5.接合数组array_splice()
array_splice()函数会删去数组中从offset开端到offset+length完毕的一切元素,并以数组的方式回来所删去的元素。其方式为:
arrayarray_splice(arrayarray,intoffset[,length[,arrayreplacement]])
offset为正值时,则接合将从距数组最初的offset方位开端,offset为负值时,接合将从距数组末尾的offset方位开端。假如忽略可选的length参数,则从offset方位开端到数组完毕之间的一切元素都将被删去。假如给出了length且为正值,则接合将在距数组最初的offset+length方位完毕。相反,假如给出了length且为负值,则结合将在距数组最初的count(input_array)-length的方位完毕。实例如下:
$fruits=array(“Apple”,”Banana”,”Orange”,”Pear”,”Grape”,”Lemon”,”Watermelon”);
$subset=array_splice($fruits,4);
print_r($fruits);
print_r($subset);
//output
//Array([0]=>Apple[1]=>Banana[2]=>Orange[3]=>Pear)
//Array([0]=>Grape[1]=>Lemon[2]=>Watermelon)
?>
能够运用可选参数replacement来指定替代方针部分的数组。实例如下:
$fruits=array(“Apple”,”Banana”,”Orange”,”Pear”,”Grape”,”Lemon”,”Watermelon”);
$subset=array_splice($fruits,2,-1,array(“GreenApple”,”RedApple”));
print_r($fruits);
print_r($subset);
//output
//Array([0]=>Apple[1]=>Banana[2]=>GreenApple[3]=>RedApple[4]=>Watermelon)
//Array([0]=>Orange[1]=>Pear[2]=>Grape[3]=>Lemon)
?>
从程序能够很清楚看到这个函数的运用方法了。
6.数组的交集array_intersect()
array_intersect()函数回来一个保留了键的数组,这个数组只由第一个数组中呈现的且在其他每个输入数组中都呈现的值组成。其方式如下:
arrayarray_intersect(arrayarray1,arrayarray2[,arrayN…])
下面这个比如将回来在$fruit1数组中呈现的且在$fruit2和$fruit3中也呈现的一切的水果:
$fruit1=array(“Apple”,”Banana”,”Orange”);
$fruit2=array(“Pear”,”Apple”,”Grape”);
$fruit3=array(“Watermelon”,”Orange”,”Apple”);
$intersection=array_intersect($fruit1,$fruit2,$fruit3);
print_r($intersection);
//output
//Array([0]=>Apple)
?>
只要在两个元素持平且具有相同的数据类型时,array_intersect()函数才会认为它们是相同的。
7.相关数组的交集array_intersect_assoc()
函数array_intersect_assoc()与array_intersect()根本相同,只不过他在比较中还考虑了数组的键。因此,只要在第一个数组中呈现,且在一切其他输入数组中也呈现的键/值对才回来到成果数组中。
方式如下:arrayarray_intersect_assoc(arrayarray1,arrayarray2[,arrayN…])
下面的比如回来了呈现在$fruit1数组中,也一起呈现在$fruit2与$fruit3中的一切键/值对:
$fruit1=array(“red”=>”Apple”,”yellow”=>”Banana”,”orange”=>”Orange”);
$fruit2=array(“yellow”=>”Pear”,”red”=>”Apple”,”purple”=>”Grape”);
$fruit3=array(“green”=>”Watermelon”,”orange”=>”Orange”,”red”=>”Apple”);
$intersection=array_intersect_assoc($fruit1,$fruit2,$fruit3);
print_r($intersection);
//output
//Array([red]=>Apple)
?>
8.数组的差集array_diff()
函数array_diff()回来呈现在第一个数组中但其他输入数组中没有的值。这个功能与array_intersect()相反。
arrayarray_diff(arrayarray1,arrayarray2[,arrayN…])
实例如下:
$fruit1=array(“Apple”,”Banana”,”Orange”);
$fruit2=array(“Pear”,”Apple”,”Grape”);
$fruit3=array(“Watermelon”,”Orange”,”Apple”);
$intersection=array_diff($fruit1,$fruit2,$fruit3);
print_r($intersection);
//output
//Array([1]=>Banana)
?>
9.相关数组的差集array_diff_assoc()
函数array_diff_assoc()与array_diff()根本相同,只是它在比较时还考虑了数组的键。因此,只在第一个数组中呈现而不再其他输入数组中呈现的键/值对才会回来到成果数组中。其方式如下:
arrayarray_diff_assoc(arrayarray1,arrayarray2[,arrayN…])
下面的比如只回来了[yellow]=>Banana,因为这个特殊的键/值对呈现在$fruit1中,而在$fruit2和$fruit3中都不存在。
$fruit1=array(“red”=>”Apple”,”yellow”=>”Banana”,”orange”=>”Orange”);
$fruit2=array(“yellow”=>”Pear”,”red”=>”Apple”,”purple”=>”Grape”);
$fruit3=array(“green”=>”Watermelon”,”orange”=>”Orange”,”red”=>”Apple”);
$intersection=array_diff_assoc($fruit1,$fruit2,$fruit3);
print_r($intersection);
//output
//Array([yellow]=>Banana)
?>
运用数组的过程中常常要遍历数组。一般需求遍历数组并取得各个键或值(或许一起取得键和值),所以毫不奇怪,PHP为此提供了一些函数来满足需求。许多函数能完成两项使命,不仅能获取当时指针方位的键或值,还能将指针移向下一个适当的方位。

php

php数组排序函数

在运用PHP进行编程时,有时需求对数组进行排序,通常咱们运用的对数组进行排序的办法有冒泡排序、快速排序等等。
咱们除了能够自界说一些数组排序的函数外,PHP还内置了多种对数组进行排序的函数,这些函数答应用户在数组内部对元素进行排列。经过排序能够对数据进行合理的办理,进步程序的履行功率。下面咱们就来介绍一下PHP中的数组排序函数。
PHP中常用的数组排序函数如下表所示:
函数阐明
sort()对数组元素进行升序排序(从小到大)。
rsort()对数组元素进行降序排序(从大到小)。
asort()对数组元素进行升序排序(从小到大),并坚持索引联系。
arsort()对数组元素进行降序排序(从大到小),并坚持索引联系。
ksort()依照数组的键值对数组进行升序排序(从小到大),并坚持索引联系。
krsort()依照数组的键值对数组进行降序排序(从大到小),并坚持索引联系。
1、sort()函数
sort()函数能够将数组进行升序排序(从小到大,由低到高),语法格局如下:
sort($array[,$sort_flags=SORT_REGULAR])
参数阐明如下:
$array:为要排序的数组。
$sort_flags:为可选参数,默以为“SORT_REGULAR”,用来界说函数排序的形式。$sort_flags能够设置为下面这些值:
0或SORT_REGULAR:正常比较数组元素,不改变其类型(默认值);
1或SORT_NUMERIC:将数组元素当作数字来比较;
2或SORT_STRING:将数组元素当作字符串来比较
3或SORT_LOCALE_STRING:依据当前的区域(locale)设置来把数组元素当作字符串比较,能够用setlocale()来改变。
4或SORT_NATURAL:和natsort()相似对每个数组元素以“天然的次序”对字符串进行排序,是PHP5.4.0中新增的。
5或SORT_FLAG_CASE:能够与SORT_STRING或SORT_NATURAL兼并(OR位运算),不区别大小写排序字符串。
提示:sort()函数会删去$array华夏有的键名并为其赋与新的键名,而不是只是将数组元素重新排序。函数履行成功时会回来TRUE,失利时会回来FALSE。
【示例】运用sort()函数对数组进行排序。
$num=array(10,23,5,12,84,16);
echo’
‘;
sort($num);
print_r($num);
$language=array(
‘a’=>’http://c.biancheng.net/php/’,
‘b’=>’PHP’,
‘c’=>’Java’,
‘d’=>’Golang’,
‘e’=>’Python’
);
sort($language,SORT_FLAG_CASE);
print_r($language);
?>
运转成果如下:
Array
(
[0]=>5
[1]=>10
[2]=>12
[3]=>16
[4]=>23
[5]=>84
)
Array
(
[0]=>Golang
[1]=>Java
[2]=>PHP
[3]=>Python
[4]=>http://c.biancheng.net/php/
)
需求留意的是,在对混合类型的数组进行排序时需求特别小心,sort()函数很可能会回来一个不可预知的成果。
2、rsort()函数
rsort()函数相同能够对数组进行升序排序(从小到大,由低到高),但它不会修正原数组中的键名。能够将rsort()函数看作是sort()函数的增强版。
rsort()函数首要用于那些特别重视值和索引之间联系的数组,其语法格局如下:
asort($array[,$sort_flags=SORT_REGULAR])
参数阐明如下:
$array:为要排序的数组。
$sort_flags:为可选参数,用来界说函数排序的形式,默认值为“SORT_REGULAR”。$sort_flags的取值与sort()函数中的$sort_flags参数相同。
【示例】运用asort()函数对数组进行排序。
$language=array(
‘a’=>’http://c.biancheng.net/php/’,
‘b’=>’PHP’,
‘c’=>’Java’,
‘d’=>’Golang’,
‘e’=>’Python’
);
echo’
‘;
asort($language,SORT_FLAG_CASE);
print_r($language);
?>
运转成果如下:
Array
(
[d]=>Golang
[c]=>Java
[b]=>PHP
[e]=>Python
[a]=>http://c.biancheng.net/php/
)
3、rsort()函数
rsort()函数函数能够对数组进行降序排序(从大到小,由高到低),与sort()函数相似rsort()函数也会删去数组原有的键名,并为其重新赋值。其语法格局如下:
rsort($array[,$sort_flags=SORT_REGULAR])
参数阐明如下:
$array:为要排序的数组。
$sort_flags:为可选参数,用来界说函数排序的形式,默认值为“SORT_REGULAR”。$sort_flags的取值与sort()函数中的$sort_flags参数相同。
【示例】运用rsort()函数对数组进行排序。
$language=array(
‘a’=>’Linux’,
‘b’=>’PHP’,
‘c’=>’Java’,
‘d’=>’Golang’,
‘e’=>’Python’
);
echo’
‘;
rsort($language,0);
print_r($language);
?>
运转成果如下:
Array
(
[0]=>Python
[1]=>PHP
[2]=>Linux
[3]=>Java
[4]=>Golang
)
4、arsort()函数
arsort()函数能够对数组进行降序排序(从大到小,由高到低),但它不会修正原数组中的键名。与rsort()函数相似arsort()函数相同适用于那些特别重视值和索引之间联系的数组,其语法格局如下:
arsort($array[,$sort_flags=SORT_REGULAR])
参数阐明如下:
$array:为要排序的数组。
$sort_flags:为可选参数,用来界说函数排序的形式,默认值为“SORT_REGULAR”。$sort_flags的取值与sort()函数中的$sort_flags参数相同。
【示例】运用arsort()函数对数组进行排序。
$language=array(
‘a’=>’Linux’,
‘b’=>’PHP’,
‘c’=>’Java’,
‘d’=>’Golang’,
‘e’=>’Python’
);
echo’
‘;
arsort($language,0);
print_r($language);
?>
运转成果如下:
Array
(
[e]=>Python
[b]=>PHP
[a]=>Linux
[c]=>Java
[d]=>Golang
)
5、ksort()函数
ksort()函数能够依据数组的键值对数组进行升序排序(从小到大,由低到高),不会修正数组的键名。该函数首要用于关联数组,语法格局如下:
ksort($array[,$sort_flags=SORT_REGULAR])
参数阐明如下:
$array:为要排序的数组。
$sort_flags:为可选参数,用来界说函数排序的形式,默认值为“SORT_REGULAR”。$sort_flags的取值与sort()函数中的$sort_flags参数相同。
【示例】运用ksort()函数对数组进行排序。
$info=array(
‘id’=>1234,
‘url’=>’http://c.biancheng.net/php/’,
‘language’=>’PHP’,
‘article’=>’数组排序函数’
);
echo’
‘;
ksort($info,0);
print_r($info);
?>
运转成果如下:
Array
(
[article]=>数组排序函数
[id]=>1234
[language]=>PHP
[url]=>http://c.biancheng.net/php/
)
6、krsort()函数
krsort()函数能够依据数组的键值对数组进行降序排序(从大到小,由高到低),不会修正数组的键名。该函数首要用于关联数组,语法格局如下:
krsort($array[,$sort_flags=SORT_REGULAR])
参数阐明如下:
$array:为要排序的数组。
$sort_flags:为可选参数,用来界说函数排序的形式,默认值为“SORT_REGULAR”。$sort_flags的取值与sort()函数中的$sort_flags参数相同。
【示例】运用krsort()函数对数组进行排序。
$info=array(
‘id’=>1234,
‘url’=>’http://c.biancheng.net/php/’,
‘language’=>’PHP’,
‘article’=>’数组排序函数’
);
echo’
‘;
krsort($info,0);
print_r($info);
?>
运转成果如下:
Array
(
[url]=>http://c.biancheng.net/php/
[language]=>PHP
[id]=>1234
[article]=>数组排序函数
)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。