关联数组
相较于数值数组,关联数组的索引可以为字符串和数字,关联数组元素也可称为键值对,索引为键,值为值。
源码
<?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对应的值为wangwu
getappoint($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对应的值为wangwu
getappoint($arr3,1);
//数组中元素位数为1的值为18
创建函数getappoint传入虚参$arr $oint
数值计时器$n初始值为0,用于循环外记录循环迭代次数
foreach函数循环遍历数组$arr,分配元素键名为$k,值为$v
if判断传入实参与循环内键名是否相等。相等则输出并结束循环。不相等则进入下一个判断。
elseif判断输入数值与循环正在迭代的次数是否相等,相等输出数组内对应位数的值,并结束循环。
不相等则结束判断,执行计时器自增,并进入下一次迭代,直到循环结束为止。
调用函数并传入实参