PHP学习笔记09(PHP数组)

什么是PHP数组

    在PHP中,数组可以在一个变量中存储多个数值。

如何创建数组

    在PHP中,使用array();来创建一个数组。在PHP中,有三种类型的数组,分别为数值数组、关联数组和多维数组。数值数组就是“带有数字ID键的数组”。关联数组就是“带有指定键的数组,每个键关联一个值”。多维数组顾名思义,就是包含多个数组的数组。

PHP数值数组

    数值数组有两种创建的方式,一种是自动分配ID键,另一种是手动分配ID键。自动分配ID键的创建方式很简单,例如

$test=array("array0","array1","array2");

这样,0号键的值就是array0,1号键的值就是array1,2号键的值就是array2。第二种方式就是手动分配ID键

$a[0]="array0";
$a[1]="array1";
$a[2]="array2";

这样,我们也能实现和上面相同的效果。无论是哪种方式创建了数组,调用方式都是一样的。

echo $a[0];
echo $a[1];
echo $a[2];

获取数组的长度  count() 函数

    count()函数的作用是返回数组的长度,也就是元素的数量。有了这个函数,我们就可以通过for循环来遍历输出数组了。

for($x=0;$x<count($a);$x++)
	echo $a[$x];

PHP 关联数组

    关联数组是用户给数组分配了指定键的数组。它也有两种定义方式。第一种就是使用“键”=>“值”的方法。

$age=array("peter"=>"35","ben"=>"30");
第二种方法就是
$age['peter']="35";
$age['ben']="30";
这两种方法是等价的。在创建好数组之后,我们就可以用这些键来对数组进行访问了。例如
echo "PETER is ".$age['peter']."years old,and ben is ".$age['ben']."years old";

遍历关联数组

    在遍历关联数组的时候,我们需要用到foreach()函数。这个函数有两种用法。第一种是只取值,不取下标。第二种是既取值又取下标。

扫描二维码关注公众号,回复: 1976327 查看本文章

    只取值不取下标:foreach(数组名字 as 值){执行的任务;}。这行代码的功能就是从数组的第一个元素开始,每次将他对应的值去除,放到as后面的那个变量里面,再通过花括号里面的语句对该变量进行操作。例如

<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
 
foreach($age as $value)
{
    echo  "Value=" . $value;
    echo "<br>";
}
?>
这段代码讲的就是从数组的第一个元素开始,把它的值放到$value里面,再将$value输出。对数组中下一个元素执行同样的操作一直到数组结束。 :每次循环过后,$value的值都会发生改变,即$value里面存放的值始终是数组的当前元素对应的值。
    既取值又取下标:foreach(数组名字 as 下标=>值){执行的任务;}。该代码的功能和上面一样,只不过需要多出来一个变量来存储当前元素的下标。
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
 
foreach($age as $x=>$value)
{
    echo "Key=" . $x . ", Value=" . $value;
    echo "<br>";
}
?>//示例代码引用自(runoob.com)

杂谈

    在数组当中,键的数据类型可以是整型,也可以是字符型,而值则可以是任意的类型。在PHP中,键会有这样几种强制转换。

1.包含有合法整型的字符串会被强制转换成整型。例如“8”这个字符串在键里面会被转换成整型数据8,而“08”则不会被转换成整型,因为它不是合法十进制整数。

2.浮点型也会被强制转换成整型。例如某个键为8.7,那么在实际储存当中便会被储存为8.

3.布尔值也会被转换成整型,true被转成1,false被转成0。

4.null会被强制转换为空字符串,即“”。

    如果在数组的定义中,多个单元都使用了同一个键名,则只有最后一个有效,前面的都被覆盖了。

    键名是一个可选参数,故可以缺省,如果不填,PHP则使用之前最大的整数键名加上1来作为新的键名。例如
<?php
$array = array(
         "a",
         "b",
    6 => "c",
         "d",
);
var_dump($array);
?>
这里a所对应的键名就是0,b的键名为1,c的键名为6,而d的键名为7.

    在编写程序时,始终将用字符串标识的数组索引加上引号!

    在编写程序时,始终将用字符串标识的数组索引加上引号!

    在编写程序时,始终将用字符串标识的数组索引加上引号!

如果不加引号,虽然可以输出,但是语法是错误的。在实际操作中,PHP会把没有引号且不对应任何已知符号的字符串转成正常的字符串(即加上了引号)。为了养成良好的习惯,还是要在索引上面加上引号。$a[peter]是错的。$a["peter"]才是正确的,切记。



猜你喜欢

转载自blog.csdn.net/lzxtsl/article/details/80957128