PHP数组

一、数组的定义

数组在之前我们让大家记住两个观点:

    1.数组可以存入多个不同类型的数据,是一个复合数据类型。

    2.数组的英文是array,学一了一下最简单的数组声明。

那我们来进行简单的回顾:

<?php

$shu = array(1 , 1.5 , true ,'天王盖地虎,小鸡炖蘑菇');

echo '<pre>';
var_dump($shu);
echo '</pre>';

?>

在上例中,我们发现我们存入了:

    1.整型

    2.浮点

    3.布尔

    4.字符串

注:上例中echo pre这个标签的主要目的是为原样输出,格式展示的更好看,更清晰。

 

我们仔细观察一下上面的这张图,你会发现以下几个特点:

    1.array(size = 4) 说明里面有4个元素

    2.0 => int 1 我们知道int是整型的意思,1是一个整型的数值。那前面的0,1,2,3和=>代表什么意思呢?

    3.最新前的0,1,2,3代表的是值的读取标识号,我们称之为下标或者键(英文:key)

    4.=> 是一个符号标准叫法叫作:键值对应符。因此,以后再看到 0=> int 1 可以这样来说。 下标访问符0对应整型的1。

    5.我们还称数组里面的键值对为元素,元素就是键值对的组合。

索引数组的下标必须要从0开始吗?

例如:

<?php

$kele = array('llm',10 => 'NoAlike', 'PHP' , '学PHP', 19 => 'hhhh' , 'wwww');

//打印显示$kele
echo '<pre>';
var_dump($kele);
echo '</pre>';
?>

运行结果:

 

向索引数组中增加元素

  • 向索引数组中增加元素用: 数组变量名[]、数组变量名[键值]这两种方式来增加元素
  • 键值的增长规则与之前的规则一样。都是最大值加1的原则。
$kele = array('llm',10 => 'NoAlike', 'PHP' , '学PHP', 19 => 'hhhh' , 'wwww');
//打印显示$kele
$kele[]='llmjy';   //加到数组最后
$kele[20]='llm20';   //修改了wwww
echo '<pre>';
var_dump($kele);
echo '</pre>';

运行结果:

 

向索引数组中删除元素

    1.使用unset删除变量的方式来删除数组里面的值。

    2.删除了中间的值,并不会让后面的下标向前自动移动。而是原来的值为多少就为多少

    3.删除掉其中的某个值,新加入的值不会替换掉原来的位置,依然遵循最大值加1的原则。

修改值

1.用变量名[键] = 新值。就把数组中的值定的值修改了。

索引数组的其他声明方式

一、直接用之前未声明的变量,用变量名后面接中括号的方式声明数组。

二、每次用array()写的太麻烦了,还可以不用写array哟,直接用[ ],里面写键/值 对,用逗号隔开。

关联数组

索引数组适当的变一下形就出现了关联数组。只要数组里面有一个为字符串的数组,就为关联数组。

通过上例中,我们发现数组的下标只能够为字符串,当然不能够满足我的需求。

假设我想声明一个下标为帅对应陈奕迅这个值。肯定不能满足我的需求。

那我们来声明一下关联数组。跟索引数组的声明方式完成一样。不过不同的是,必须要指定字符串的下标和必须要使用键值对应符。

PHP数组的计算

数组是我们最常用到的类型,那如何计算某个一维数组的个数呢。其实我们可以用到我们之前学过的数学函数里面的一个:count()。

如果是一个二维数组,这个函数只会统计当前的这一个维度的数组元素个数。如上例中的:$erwei。
所以count($erwei)的时候结果是2。而count($erwei[1])的时候,结果为3。

php for循环遍历索引数组

php ​foreach遍历关联数组

我们通过上一章的内容学会了遍历连续下标的索引数组。可是,我们发现我们遍历不了关联数组,也遍历不了下标不连续的索引数组。

那我们其实在学循环的时候,有一个布尔型循环是专门用来循环数组的。这个循环的基本语法就是foreach基本语法。

语法:

foreach( 要循环的数组变量 as [键变量 =>] 值变量){
//循环的结构体
}

这是一个固定用法,将要循环的数组放进去。
as 是一个固定的关键字

  • 每次循环的时候,把下标赋值给了变量$key,把值的变量赋值给了变量$value
  • 循环一次读一次键和值。如上例中,读完“凤姐”再读取“芙蓉”,读到最后,发现没有可以读取的数组元素后,停止循环遍历数据。

注意:$key 和$value并不是变量名必须得为这两个名字。你命名为其他的也可以,如 $kai => $wen是一样的。 你要清楚键赋值给了哪个变量,值赋值给了另外的哪个变量。

遍历多维数组

  • 第一次循环的时候,将数组赋值给了$value,然后用foreach循环$value。将二维的子数组中的键给到$k,值赋值给变量$v。
  • 第一次循环退出子数组的循环,执行后续代码显示分割线。
  • 依此类推,第二次循环也是这样。

php list、each函数遍历数组

list函数:list ( mixed $变量1 [, mixed $变量n ] )

它的功能:将索引数组下标为0的对应我变量1,下标1的对应变量2,依此类推。

<?php

list($one , $two , $three) = array('张三' ,'李四' ,'王五');

//再次声明:单引号不结释变量,所以输出的是字符串$one
echo '$one----'.$one.'<br />';
echo '$two----'.$two.'<br />';
echo '$three----'.$three.'<br />';

?>

运行结果:

结论:

    1.将下标为0的张三赋值给了$one

    2.将下标为1的李四赋值给了$two

    3.将下标为2的王五赋值给了$three

each函数

array each ( array &$array )

功能:传入一个数组。它会将其中的一个元素拆为个新数组。每次执行这样操作一个元素。执行一次先后移动一次,同样的方式操作下一个数组元素。执行到最后,返回false。

。。。。。。未完

 

posted @ 2018-07-31 13:48  飞鱼0725  阅读(127)  评论(0编辑  收藏  举报