您的位置:首页 > 编程语言 > PHP开发

php之数组

2020-06-08 05:29 513 查看

数组

1. 数组定义

数组是一个有序图,实际上是value→keys的映射,我们可以把它看成一个队列,列表,集合。
当然这玩意其实理解起来好像就是把多个特殊值存在一个变量里面。
fp:你要处理班级事务,想把所有人的学号末尾+1.如果挨着加是不是太难搞了?倘若把所有的学号存在一个数组中,我们遍历数组挨着输出就万事大吉。
注意:数组可以在单个变量中存储多个值,并且您可以根据键访问其中的值。

有人纳闷什么叫键什么叫键值什么叫i值嘛?????

w
键值(key)是windows中注册表中的概念。键值位于注册表结构链末端,和文件系统的文件类似,包含当前计算机及应用程序执行时使用的实际配置信息和数据。键值包含几种数据类型,以适应不同环境的使用需求。
注册表中,是通过键和子键来管理各种信息。同时,在注册表里面的所有信息是以各种形式的键值项数据保存下来。在注册表编辑器的右窗口中,保存的都是各种键值项数据。键值项由键值名、数据类型和键值三部分组成,其格式为:“键值名:数据类型:键值”。

貌似就是修改注册表的时候,每个键是每个设置名称键值就是1或者0???

2. 数组下标

→数组下标我寻思着是不是
A[1,2,3,4,5,6]~SO~A[0]=1 理论上来说0是下标

3. 索引数组

用数字作为键名的数组一般叫做索引数组
fp1:

$fruit = array("苹果","香蕉");
print_r($fruit);

running:
三种赋值方式:
0x00

array[0]='苹果';

fp:

$arr[0]='李子';
$arr[1]='李子1';
var_dump($arr);

0x01

$arr=arry('0'=>'苹果');

fp:

$fruit = array('0' => '西瓜','1' => '李子');
var_dump($fruit);

0x02

$arr=array('苹果');

fp:

$arr = array('苹果','火龙果','桃','西瓜','例子');
var_dump($arr);

遍历数组值

$fruit = array('苹果','香蕉','西瓜');
foreach ($fruit as $key => $value) {
echo '<br>第'.$key.'值是是: '.$value;
}

$key是键值
$value是元素值

使用array()新建数组

$a=array(1,2,3,4,5,6);
$b=array("one", "two", "three");
$c=array(0=>"aaa",1=>"bbb",2=>"ccc");
$d=array("aaa",6=>"bbb","ccc");
$e=array("name"=>"zhang", "age"=>20);

var_dump($d);

数组的键值会在前面的的指定数值加一哦

4. 关联数组

用字符串作为键名的数组一般叫做关联数组
fp:

$fruit=array('orange'=>'橘子');
$fruit=array('orange'=>'句子');
echo $fruit['orange'];
echo "!!!!!!!!";
var_dump($fruit);

5.多维数组

fp:

$cars = array
(
array("Volvo",22,18),
array("BMW",15,13),
array("Saab",5,2),
array("Land Rover",17,15)
);

echo $cars[0][0].": 库存:".$cars[0][1].", 销量:".$cars[0][2].".<br>";
echo $cars[1][0].": 库存:".$cars[1][1].", 销量:".$cars[1][2].".<br>";
echo $cars[2][0].": 库存:".$cars[2][1].", 销量:".$cars[2][2].".<br>";
echo $cars[3][0].": 库存:".$cars[3][1].", 销量:".$cars[3][2].".<br>";

ok我们running一下

我们会发现数组会多出一个下标,变成了两个索引,即:行·列。

6.遍历数组

6.1 for遍历

$arr = array(1,3,"for"=>4,5,6,7,8,9,"10"=>"aa","bb","cc");
for($i=0;$i<count($arr);$i++){
echo "\$arr[".$i."]=".$arr[$i]."<br>";

}

如果修改了下标的话这个循环就会找不到默认的数组下标。即:0,1,2,3,4,5,6,7,8,9所以就会报错。

6.2 foreach遍历

$a = array('yuansu1','yuansu2','yuansu3','lihai'=>yuansu44444,'yuansu5','yuansu6','yuansu7','yuansu8','yuansu9','123'=>yuansuan101010110,'yunsuan11','yunsuan12','yusuan13','yusuan14','yunsuan15','yuansuan17','yunsuan18',);
foreach ($a as $key => $value) {
echo "\第".$key."个的值是" .$value."<br>";

}

2

6.3 foreach的两种格式
仅限数组
0x00
foreach(array_expression as $value)
0x01
foreach(array_expression as $key => $value)

第二种格式做同样的事,只除了当前单元的键值也会在每次循环中被赋给变量 $key。
注: 当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。此外注意foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。

6.4你会用到的遍历函数

  • $array each(array array)

    each函数生成一个由数组当前内部指针所指向的元素的键名和键值组成的数组,并把指针向前移动。返回的数据包中包含4个元素,键名为0,1,key,和value。单元0和key包含有数组单元的键名。1和value包含数据。
    如果内部指针超过了指针范围,本函数会返回false。
    fp:

$people = array("bill","steve","mark","david");
reset($people);
while (list($key,$val) = each($people))
{
echo "$key => $val<br>";

}

reset()将内部指针指向数组的第一个元素。

  • void list(mixed …)
    list用于在一次操作中给一组变量赋值,却只可以用在数字索引数组中,假定索引从0开始。
    语法list(var,var1)
    fp:
$fruit = array('a'=>'apple','b'=>'banana','c'=>'cranberry');
reset($fruit);
while (list($key,$val) = each($fruit)){

echo "$key=>$val\n";
}
$arr = array("one"=>"aaa","two"=>"bbb","three"=>"cccc");
while($sz=each($arr)){
echo $sz["key"]."===>".$sz["value"]."<br>";

}

6.5使用数组的内部指针控制函数遍历数组

居家旅行必备函数:next(),prev().end(),reset()

格式:

mixed next(数组名称); mixed prev(数组名称);
mixed end(数组名称); mixed reset(数组名称);
mixed current(数组名称); mixed key(数组名称)

6.6数组的键值操作函数

0x00 array_values--返回数组中的所有值

fp:`

$ta = array("name"=>"张三","age"=>"20","sex"=>"男");
$values = array_values($ta);
var_dump($values);
//array(3){[0]=>sring(4)"张三"  [1]=>int(20)  [2]=>string(2)"男"}

`

0x01 array_keys --返回数组中所有键名

fp:

$a = array("name"=>"张三","age"=>"20","sex"=>"男");
$keys = array_keys($a);
for($i=0;$i<count($keys);$i++){
echo $keys[$i]."&nbsp;";  //name age sex
}

running:

0x02 _arryay检查s数组中是否存在某个值

$a = array("name"=>"张三","age"=>"20","sex"=>"男");
if(in_array("张三",$a)){
echo " ‘张三’在\$a数组中";   //”张三“在$a数组中
}

runing

0x03 array_reverise 返回一个单元顺序相反的数组 fp:
$a = array("name"=>"张三","age"=>"20","sex"=>"男");
$b = array_reverse($a);
foreach($b as $k=>$v){
echo "$k=>$v";  // sex=>男 age=>20 name=>张三
}

running:

二.服务器变量

1.$server

$servers是一个包含诸如头信息(header)、路径(path)和脚本位置(script locations)的数组。数组的实体由
web
服务器创建。不能保证所有的服务器都能产生所有的信息;服务器可能忽略了一些信息,或者产生了一些未在下面列出的新的信息。这是一个自动全局变量。这只不过意味这它在所有的脚本中都有效。在函数或方法中不需要使用
global $_SERVER; PHP_SELF :当前正在执行脚本的文件名 DOCUMENT_ROOT :当前运行脚本所在的文档根目录
REMOTE_ADDR :正在浏览当前页面用户的 IP 地址。

2.$env环境变量

HP中的$_ENV是一个包含服务器端环境变量的数组。它是PHP中一个超级全局变量,我们可以在PHP 程序的任何地方直接访问它。
$_ENV只是被动的接受服务器端的环境变量并把它们转换为数组元素,你可以尝试直接输出它。

1、var_dump($_ENV);

2、print_r($_ENV);

3、foreach($_ENV as $key=>$val){echo $key.'--------'.$val.'<br>';}

3.$GET $POST $_REQUEST $_FILES $COOKIE $SEESION $GLOBALS

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: