关联数组
相较于数值数组,关联数组的索引可以为字符串和数字,关联数组元素也可称为键值对,索引为键,值为值。
源码
<?php echo "<hr>"; //水平线标签//关联数组$arr3 = array(); //创建空的数组//关联数组添加元素//$arr3["元素的键"] = "元素的值"$arr3["name"] = "zhangsan";$arr3["age"] = 18 ;$arr3[2] = 'num';//也可以对已有元素进行修改$arr3["name"] = "wangwu";//通过数组内元素的键,输出对应元素的值的值echo $arr3["name"] . "<br>";//输出数组类型及具体元素var_dump($arr3);/* array(2) { ["name"]=> string(6) "wangwu" ["age"]=> int(18) [2]=> string(3) "num" }该变量是数组类型,有两个元素组成键名为name的元素,值为字符串类型,由六个字符组成 wangwu键名为age的元素,值为整数类型,具体为18键名为2的元素,值为字符串类型,由3个字符组成 num*///通过foreach遍历数组元素的 键值对foreach($arr3 as $key => $value ){echo "<br>" . '键为' . $key . '值为' . $value;}/*foreach循环遍历中$arr3为指定数组名 as关键字将数组中每个元素分配给两个变量其中$key为数组的键,$value为数组的值。也可自定义变量名如$k => $v{花括号内为循环迭代过程中执行的代码块}键为name值为wangwu键为age值为18键为2值为num*///调用函数输出数组中指定索引的值function getappoint($arr,$oint){//设置虚参$arr:数组 $oint:指定键$n=0; //初始化计数器,记录迭代次数foreach($arr as $k => $v){if($k == $oint){// == 号判断字符串内容是否相等echo '<br>' . '键名' . $k . "对应的值为" . $v ;// 输出键名对应的值break; //判断成功并执行完成后,结束循环,避免不必要的运算}elseif($oint == $n){echo "<br>" . $n . '为' . $v ;break;}$n++; //计时器自增}}//调用函数getappoint($arr3,'name');//键名name对应的值为wangwugetappoint($arr3,1);//数组中元素位数为1的值为18?>
关联数组的创建
$arr1 = []
$arr1 = array
关联数组的赋值
$arr1['键名'] = '值'
$arr1['name'] = 'zhangsan'
$arr1 = array("键名" = '值',"键名"='值')
$arr1 = array ('name' = "zhangsan" , 'age' = 18 , 2 = 'num')
元素的输出
通过数组内元素的键,输出对应元素的值的值
echo $arr3["name"] . "<br>";
输出数组类型及具体元素
var_dump($arr3);
array(2) { ["name"]=> string(6) "wangwu" ["age"]=> int(18) [2]=> string(3) "num" }
该变量是数组类型,有两个元素组成
键名为name的元素,值为字符串类型,由六个字符组成 wangwu
键名为age的元素,值为整数类型,具体为18
键名为2的元素,值为字符串类型,由3个字符组成 num
循环遍历数组元素并取值
foreach($arr3 as $key => $value ){
echo "<br>" . '键为' . $key . '值为' . $value;
}foreach循环遍历 数组$arr3 指定数组名
as关键字将数组中每个元素分配给两个变量
其中$key为数组的键,$value为数组的值。也可自定义变量名如$k => $v
{花括号内为循环迭代过程中执行的代码块}
键为name值为wangwu
键为age值为18
键为2值为num
调用函数输出数组中指定索引或位数的值
代码块
function getappoint($arr,$oint){//设置虚参$arr:数组 $oint:指定键$n=0; //初始化计数器,记录迭代次数foreach($arr as $k => $v){if($k == $oint){// == 号判断字符串内容是否相等echo '<br>' . '键名' . $k . "对应的值为" . $v ;// 输出键名对应的值break; //判断成功并执行完成后,结束循环,避免不必要的运算}elseif($oint == $n){echo "<br>" . $n . '为' . $v ;break;}$n++; //计时器自增}}//调用函数getappoint($arr3,'name');//键名name对应的值为wangwugetappoint($arr3,1);//数组中元素位数为1的值为18
创建函数getappoint传入虚参$arr $oint
数值计时器$n初始值为0,用于循环外记录循环迭代次数
foreach函数循环遍历数组$arr,分配元素键名为$k,值为$v
if判断传入实参与循环内键名是否相等。相等则输出并结束循环。不相等则进入下一个判断。
elseif判断输入数值与循环正在迭代的次数是否相等,相等输出数组内对应位数的值,并结束循环。
不相等则结束判断,执行计时器自增,并进入下一次迭代,直到循环结束为止。
调用函数并传入实参