PHP 数组

数组的概念

数组:array,数据的组合,指将一组数据(多个)存储到一个容器中,用变量指向该容器,然后可以通过变量一次性得到该容器中的所有数据。

数组定义语法

array函数定义
$变量 = array(元素 1,元素 2,元素 3);
中括号定义
$变量 = [元素 1,元素 2,元素 3]
隐形定义数组:给变量增添一个中括号
$变量[] = 值; // 不提供下标,系统默认从 0 开始
$变量[key] = value;
$变量[下标] = 值;

多维数组

示例:二维数组

<?php
        $test = array(
  		array("name" => "Alice","age" => 18),
		["name" => "Bob","age" => 19]
	);
	print_r($test);

?>

可以在二维数组中在嵌套,实现多维数组

<?php
      $test = array(
		array("name" => "Alice","age" => 18),
		[	
			"info" => array(
				"name" => "Junglezt",
				"age" => 99
			),

			"favorite" => array(
				"like" => "Web",
				"favorite" => "kill"
			)
		]
	);
	print_r($test)

?>

异型数组(不规则数组)

数组中的元素不规则,有普通变量也有数组

下标访问

通过下标得到数组中的值

<?php
	$test = array(
		"name1" => array(
			"name" => "Alice",
			"age" => 18
		),

		"name2" => [	
			"info" => array(
				"name" => "Junglezt",
				"age" => 99
			),

			"favorite" => array(
				"like" => "Web",
				"favorite" => "kill"
			)
		]
	);
	print_r($test["name1"]);
	echo "<br />";
	print_r($test["name1"]["name"]);
	echo "<br />";
	print_r($test["name2"]);
	echo "<br />";
	print_r($test["name2"]["info"]);
	echo "<br />";
	print_r($test["name2"]["favorite"]["like"]);
?>

遍历数组

数组访问通过数组下标访问,有时候数组所有的数据都需要依次使用,需要遍历数组

<?php
foreach($数组变量 as [$下标 =>] $值){
    // 通过 $下标 访问元素的下标,通过 $值 访问元素值

}
?>

示例:

<?php

	$test = array(1,2,3,4,5,6,7,8,9,10);

	// 获取值
	foreach($test as $i){
		// $i 随意,满足变量名即可
		echo $i,"<br />";
	}


	// 获取值和下标
	foreach($test as $a => $b){
		echo "下标: ",$a," 值: ",$b,"<br />";
	}
?>


注意:在一般数组进行存储时,通常一维数组下标为数字,二维数组下标为字符串(数据库字段名)。所以在进行遍历的时候,通常只需要针对一维数组。然后二位数组通过下标访问。
如下示例:

<?php

	$test = array(
		0 => array(
			"username" => "Jackson",
			"password" => "123456"
		),
		1 => array(
			"username" => "Junglezt",
			"password" => "test001"
		)
	);

	foreach($test as $key => $value){
		// 1、可以继续循环 $value 数组
		// 2、可以使用下标访问

		echo "用户名: ",$value["username"]," 密码: ",$value["password"],"<br />";
	}
?>

for循环遍历数组

for循环需要已知边界条件(起始和结束),而且需要有条件变化的规律
for循环遍历数组必须的条件:
1、获取数组长度,count(得到数组元素的长度)
2、数组下标必须是规律的数字
示例:

<?php
	$test = array(
		0 => array(
			"username" => "zhangsan",
			"password" => "123456zs"
		),
		1 => array(
			"username" => "lisi",
			"password" => "123456ls"
		)
	);
	// 获取数组中元素的数量
	$num = count($test);
	for($a = 0;$a < $num;$a++){
		echo "用户名: ",$test[$a]["username"]," 密码: ",$test[$a]["password"],"<br />";
	}
?>

数组函数

排序函数

数组排序针对的是,对数组的元素进行排序
sort():顺序排序(下标重新排序)
rsort():逆序排序
asort():对数组进行排序(但是下标不会变)
arsort():逆序排序
ksort():对数组按照键名(下标)排序
krsort():逆序排序
shuffle():随机打乱数字元素

指针函数

reset():重置指针,将指针指向首位
end():重置指针,将指针指向最后一个元素
next():指针下移,取得下一个元素的值
prev():指针上移,取得上一个元素的值
current():取得当前指针对应的值
key():获取当前指针对应的下标值

其他函数

array_push():往数组中加入一个元素(后面加入)
array_pop():从数组中取出一个元素(取走)
array_shift():从数组中取出一个元素(前面取出)
array_unshift():从数组中加入一个元素(前面加入)
array_reverse():将数组元素反过来

常用函数

in_array():判断一个元素在数组中是否存在
count():统计数组中元素的数量
array_keys():获取数组的所有下标
array_values():获取数组的所有值(元素)

posted @ 2022-06-09 13:39  Junglezt  阅读(25)  评论(0编辑  收藏  举报