PHP数组

PHP数组:

创建定义数组:

数值数组:
array():定义数组
$Array = array("Ubantu","CetOS","Kali");

如上array()函数定义的内容会以数组的形式传给变量Array

  • 自动分配ID键:

    $Array = array("Ubantu","CetOS","Kali");
    
  • 手工分配ID键:

    $Array[0]="Kali";
    $Array[1]="CetOS";
    $Array[2]="Ubantu";
    
count():获取数组长度
count($Array);

count()函数返回数组的长度

  • 关联数组:带有指定键的数组,每个键关联一个值(类似键值对)

  • 多维数组:每一个数组值中包含另外一个或多个数组

关联数组:
创建方法
$Array = array("A"=>"Ubantu","B"=>"CetOS","C"=>"Kali");

or

$Array["A"]="Kali";
$Array["B"]="CetOS";
$Array["C"]="Ubantu";
多维数组:
  • 定义:一个数组中的值可能是另外一个数组,以此类推……
<?php
$cars = array (
	array("CN","+86","中国"),
    array("US","+1","美国"),
    array("TH","+66","泰国")
);
?>

数组遍历或输出:

遍历数值数组:
<?php 
	$Array = array("Ubantu","CetOS","Kali");
	$x = 0 ;
	while ($x < count($Array)) { 
		// (循环)遍历输出Array数组,利用count()函数控制循环
		echo $Array[$x++]."<br />" ;
	}
?>
遍历关联数组:
<?php 
	$Array = array("A"=>"Ubantu","B"=>"CetOS","C"=>"Kali");
	// 使用“键”来输出数组的 value
	echo $Array["A"]."<br />".$Array["B"]."<br />".$Array["C"]."<br />" ;
?>

数组排序

sort():升序
<?php
    $Array = array("Ubantu","CetOS","Kali");
	sort($Array);
    ?>

sort()函数的语法:

sort(array,sortingtype);
  • sortingtype参数(可选)

    0 = SORT_REGULAR(默认) :把每一项按常规(ASCII)顺序排序

    1 = SORT_NUMERIC:把每一项按数字进行处理

    2 = SORT_STRING:把每一项按字符串进行处理

    3 = SORT_LOCALE_STRING:按字符串处理

rsort():降序
<?php
    $Array = array("Ubantu","CetOS","Kali");
	rsort($Array);
    ?>
asort():关联数组key升序
<?php
    $Array = array("A"=>"Ubantu","B"=>"CetOS","C"=>"Kali");
	asort($Array);
    ?>

根据关联数组中的key进行数组升序

ksort():关联数组value升序
<?php
    $Array = array("A"=>"Ubantu","B"=>"CetOS","C"=>"Kali");
	ksort($Array);
    ?>
arsort():关联数组key降序
<?php
    $Array = array("A"=>"Ubantu","B"=>"CetOS","C"=>"Kali");
	arsort($Array);
    ?>
krsort():关联数组value降序
<?php
    $Array = array("A"=>"Ubantu","B"=>"CetOS","C"=>"Kali");
	krsort($Array);
    ?>
array_multisort():多维数组排序

array_multisort()函数可以用来排序多维数组或者一次排序多个数组

<?php
	$cars = array (
		array("CN","+86","中国"),
    	array("US","+1","美国"),
    	array("TH","+66","泰国")
	);
	array_multisort($cars);

?>

函数会根据每一个数组的第一个元素(cars[x] [0])进行排序操作;

函数默认是进行升序排序,同时函数也接受第二个参数指定排序方法:SORT_ASC(升序)、SORT_DESC(降序)

usort():用户自定义排序

实现自定义排序方法,就需要使用函数:usort() 告诉PHP如何对排序对象进行比较

PHP内置了比较函数:compare(),用户自定义排序方法需要覆写PHP的比较函数

function compare($x , $y) {
    if ($x[1] == $y[1]){
        return 0;
    } else if ($x[1] < $y[1]) {
        return -1 ;
    } else {
        return 1 ;
    }
}
usort($cars,'compare');

通过覆写compare()函数,比较x和y两个数组;该函数的最主要的作用就是比较两个值的大小;调用usort()函数自定义排序,(usort()函数希望排序数组$cars数组并指定比较操作compare()函数);usort()函数则根据compare()比较函数返回的结果进行排序操作;同样ursort()函数则是按照降序进行排序或者是将比较函数的返回值规则进行修改。

uasort():key排序

uksort():value排序

usort():排序

shuffle():随机排序
<?php
    $Array = array("Ubantu","CetOS","Kali");  
	shuffle($Array);
?>
array_reverse():逆向排序
<?php
	$Array = array("Ubantu","CetOS","Kali");
	shuffle($Array);
	$Array = array_reverse($Array);
?>

函数会将数组逆向然后将数组逆向后的结果拷贝给变量,不会改变原有数组变量内容

explode():设置分隔符

主要是将大量的字符串按照规定的分隔符,单一存入数组中

array explode(string separator , string string [, int limit]);

第一个参数是指定的分隔符,第二个参数是字符串内容(数组中的字符串)

<!DOCTYPE html>
<html>
<body>
	<?php 
		$Array = array();
		$File = file("file.txt");
		$Size = count($File);
		for ($i=0; $i < $Size; $i++) { 
			$Array = explode("0", $File[$i]);
		}
		print_r($Array);
	 ?>
</body>
</html>
intval():字符数字转为数字

数组浏览:

current():返回数组中当前元素
reset():返回第一个元素(key)
end():返回最后一个元素(key)
each():前移一位指针并返回元素(value)
next():后移一位指针并返回元素(value)
pos()/prev():当前指针往回移一个位置然后返回元素

数组元素引用函数:

array_walk():
<?php 
	$Array = array("Ubantu","CetOS","Kali");
	function my_print($value){
		echo "$value<br />" ;
	}
	array_walk($Array, 'my_print'); 
?>

上述代码通俗解释:array_walk()函数将为数组的每一个元素去调用my_print函数,并将元素传给函数参数

数组统计:

count():返回数组元素数量
sizeof():返回数组元素数量
array_count_values():统计特定值在数组中出现的次数
<?php 
	$Array = array(4,5,2,3,5,6,3,7,2,4,7,4,2,7,3,3,3,7,3,2);
	$sum = array_count_values($Array);
	print_r($sum);
?>

数组sum将会接收函数返回的结果,结果是由Array数组中的特定值的次数组成的键值对(关联数组)特定值作为key,出现次数作为value

数组转为标量变量:extract()

对于一个非数字索引的数组,会出现非常多的键值对,使用extract()函数可以将key变为一个标量变量,由此可以通过访问变量的方式访问key对应的value

extract(array var_array [, int txtract_type] [, string prefix]);

函数的作用就是通过一个数组拆个年间一系列的标量变量,这些标量就是数组中的key,而变量就是数组中key对应的value

<?php 
	$Array = array("A"=>"Ubantu","B"=>"CetOS","C"=>"Kali");
	extract($Array);
	echo "$A  $B $C";// 输出结果: Ubantu CetOS Kali
?>

另外参数extract会告诉函数如何处理与已有函数的冲突问题;而prefix参数则是应用到一个函数当中

posted @ 2019-09-06 21:53  Mirror王宇阳  阅读(219)  评论(0编辑  收藏  举报