<?php
$cars=array(\公众Volvo\公众,\"大众BMW\公众,\公众Toyota\"大众);
echo \公众I like \"大众 . $cars[0] . \"大众, \公众 . $cars[1] . \"大众 and \公众 . $cars[2] . \"大众.\"大众;
?>
数组是什么?
数组是一个能在单个变量中存储多个值的分外变量。
如果您有一个项目清单(例如:车名字的清单),将其存储到单个变量中,如下所示:
$cars1=\"大众Volvo\公众;
$cars2=\公众BMW\"大众;
$cars3=\公众Toyota\公众;
然而,如果您想要遍历数组并找出特定的一个呢?如果数组的项不但 3 个而是 300 个呢?
办理办法是创建一个数组!
数组可以在单个变量中存储多个值,并且您可以根据键访问个中的值。
在 PHP 中创建数组
在 PHP 中,array() 函数用于创建数组:
array();
在 PHP 中,有三种类型的数组:
数值数组 - 带有数字 ID 键的数组关联数组 - 带有指定的键的数组,每个键关联一个值多维数组 - 包含一个或多个数组的数组PHP 数值数组
这里有两种创建数值数组的方法:
自动分配 ID 键(ID 键总是从 0 开始):
$cars=array(\"大众Volvo\公众,\公众BMW\公众,\"大众Toyota\"大众);
人工分配 ID 键:
$cars[0]=\"大众Volvo\公众;
$cars[1]=\公众BMW\公众;
$cars[2]=\"大众Toyota\"大众;
下面的实例创建一个名为 $cars 的数值数组,并给数组分配三个元素,然后打印一段包含数组值的文本:
<?php
$cars=array(\"大众Volvo\"大众,\"大众BMW\公众,\公众Toyota\"大众);
echo \公众I like \公众 . $cars[0] . \公众, \"大众 . $cars[1] . \"大众 and \"大众 . $cars[2] . \"大众.\"大众;
?>
获取数组的长度 - count() 函数
count() 函数用于返回数组的长度(元素的数量):
<?php
$cars=array(\公众Volvo\"大众,\"大众BMW\"大众,\"大众Toyota\"大众);
echo count($cars);
?>
遍历数值数组
遍历并打印数值数组中的所有值,您可以利用 for 循环,如下所示:
<?php
$cars=array(\"大众Volvo\"大众,\"大众BMW\公众,\公众Toyota\"大众);
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++)
{
echo $cars[$x];
echo \"大众<br>\"大众;
}
?>
PHP 关联数组
关联数组是利用您分配给数组的指定的键的数组。
这里有两种创建关联数组的方法:
$age=array(\"大众Peter\"大众=>\"大众35\"大众,\"大众Ben\"大众=>\"大众37\公众,\"大众Joe\公众=>\"大众43\公众);
or:
$age['Peter']=\"大众35\"大众;
$age['Ben']=\公众37\"大众;
$age['Joe']=\公众43\"大众;
随后可以在脚本中利用指定的键:
<?php
$age=array(\"大众Peter\"大众=>\公众35\"大众,\"大众Ben\"大众=>\"大众37\"大众,\公众Joe\"大众=>\"大众43\"大众);
echo \公众Peter is \公众 . $age['Peter'] . \"大众 years old.\"大众;
?>
遍历关联数组
遍历并打印关联数组中的所有值,您可以利用 foreach 循环,如下所示:
<?php
$age=array(\"大众Peter\"大众=>\公众35\"大众,\"大众Ben\"大众=>\"大众37\"大众,\公众Joe\"大众=>\"大众43\"大众);
foreach($age as $x=>$x_value)
{
echo \"大众Key=\公众 . $x . \"大众, Value=\公众 . $x_value;
echo \公众<br>\"大众;
}
?>
多维数组
多维数组 将在 PHP 高等教程部分做详细先容。
条记:
foreach 语法构造供应了遍历数组的大略办法。foreach 仅能够运用于数组和工具,如果考试测验运用于其他数据类型的变量,或者未初始化的变量将发出错误信息。有两种语法:
foreach (array_expression as $value) statementforeach (array_expression as $key => $value) statement
第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。
第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key。
数组排序时创造 sort 与 rsort 排序完毕往后,var_dump 输出时原有 key 值丢失,变为数字索引。
<?php$a=array(\"大众key1\"大众=>\公众val1\"大众,\"大众key6\"大众=>\公众val6\"大众,\"大众key3\"大众=>\公众val1\公众,\"大众key5\"大众=>\"大众val6\"大众,\"大众key4\公众=>\公众val8\公众);echo \"大众sort(\$a)=\公众.PHP_EOL;sort($a);var_dump($a);?>
输出如下:
sort($a)=array(5) { [0]=> string(4) \"大众val1\"大众 [1]=> string(4) \"大众val1\"大众 [2]=> string(4) \"大众val6\"大众 [3]=> string(4) \"大众val6\"大众 [4]=> string(4) \"大众val8\"大众}<?php$a=array(\"大众key1\"大众=>\"大众val1\"大众,\公众key6\"大众=>\"大众val6\"大众,\公众key3\"大众=>\公众val1\"大众,\公众key5\"大众=>\"大众val6\"大众,\"大众key4\公众=>\公众val8\"大众);echo \公众rsort(\$a)=\"大众.PHP_EOL;rsort($a);var_dump($a);?>
输出如下:
rsort($a)=array(5) { [0]=> string(4) \公众val8\"大众 [1]=> string(4) \"大众val6\公众 [2]=> string(4) \"大众val6\"大众 [3]=> string(4) \"大众val1\公众 [4]=> string(4) \"大众val1\公众}
疑问:“数组排序时创造 sort 与 rsort 排序完毕往后,var_dump 输出时原有 key 值丢失,变为数字索引。”
正解:春联系关系数组进行升序和降序排列应利用
asort() - 根据关联数组的值,对数组进行升序排列ksort() - 根据关联数组的键,对数组进行升序排列arsort() - 根据关联数组的值,对数组进行降序排列krsort() - 根据关联数组的键,对数组进行降序排列下面就上面例题用asort()函数,根据关联数组的值,对数组进行升序排列
<?php$a=array(\"大众key1\"大众=>\"大众val1\"大众,\"大众key6\"大众=>\"大众val6\"大众,\"大众key3\公众=>\公众val1\"大众,\"大众key5\"大众=>\"大众val6\公众,\公众key4\"大众=>\"大众val8\公众);echo \"大众asort(\$a)=\"大众.PHP_EOL;asort($a);var_dump($a);?>
输出如下:
asort($a)=array(5) { [\公众key1\"大众]=> string(4) \公众val1\"大众 [\"大众key3\"大众]=> string(4) \"大众val1\"大众 [\公众key6\"大众]=> string(4) \"大众val6\"大众 [\"大众key5\公众]=> string(4) \"大众val6\"大众 [\"大众key4\"大众]=> string(4) \"大众val8\"大众}