php中的数组

第五章 数组

PHP中,数组是由一个或者多个数组元素组成的,每个数组由键(Key)和值(Value)构成

数组的分类

索引数组

索引数组是指键名为整数的数组。默认情况下,索引数组的键名是从0开始的,并一次递增,主要适用于利用位置(0,1,2,3…)来标识数组元素的情况,索引数组的键名也可以自己指定

关联数组

关联数组是指键名为字符串的数组,通常情况下,关联数组元素的“键”和“值”有一定的业务逻辑关系。

数组的使用

定义数组

(1)定义索引数组

<?php
$students=array(
    array(1,'mary',60.5),
    array(2,'John',80.5),
    array(3,'Tom',79.3)
);
var_dump($students);

这是一个二维数组,在省略键名的设置时,默认从0开始,依次增加1,因此该数组的键名一次为“0,1,2”。除此之外,还可以根据实际需要定义数组元素

(2)定义关联数组

<?php
$info=array('id'=>10,'name'=>'Tom','tel'=>1908908980890);
var_dump($info);

(3)定义混合数组

$temp=array();
$mixed=array(2,'str','id'=>5,5=>'b','a');
var_dump($mixed);
var_dump($temp);

上述示例定义了一个空数组 t e m p 和 混 合 数 组 temp和混合数组 tempmixed。其中,$mixed数组元素“b"制定了数字键名为“5”,则其后的“a"元素会自动将前面最大的数字键名加1后作为键名,5+1得到6

数组赋值

<?php
$arr[]=123;         //$arr[0]=123
$arr[]='hello';     //$arr[1]='hello'
$arr[4]='PHP';      //$arr[4]='PHP'
$arr['name']='Tom'; //$arr['name']='Tom'
$arr[]='JAVA';      //$arr[5]='JAVA'
var_dump($arr);

访问数组

通过”数组名[健]"的方式来访问

<?php
$data=array('goods'=>'clothes','num'=>23,'sales'=>500,5=>'hh');
echo $data['goods'];
echo $data['num'];
echo $data[5];

遍历数组

用foreach完成遍历

<?php
$info=['id'=>1,'usr'=>'Miranda','age'=>18];
foreach($info as $k=>$v)
{
    echo $k,':',$v,'<br>';
}

foreach引用赋值

<?php
$info=[1,2,3];
foreach($info as $k=>&$v)
{
    $v=$v+2;
}
print_r($info);

遍历二维数组

<?php
$arr=array(
    array(1,2,3,4),
    array(1,2,3,4),
    array(1,2,3,4),
    array(1,2,3,4),
);
foreach ($arr as $value)
{
    foreach ($value as $item) {
        echo $item;
    }
}

数组的删除

<?php
$info=[1,2,3];
foreach($info as $k=>&$v)
{
    $v=$v+2;
}
print_r($info);
unset($info[1]);
print_r($info);

数组操作符

数组查找

数组排序

数组常用函数

指针操作数组

函数名称功能描述
current()获取数组中当前指针指向的元素的值
key()获取数组中当前指针
next()将数组中的内部指针向前移动一位
prev()将数组中的内部指针倒回一位
each()获取数组中当前的键值对并将数组指针向前移动一步
end()将数组的内部指针指向最后一个元素
reset()将数组的内部指针指向第一个元素

(1)通过指针函数访问数组

<?php
$arr=['a','b','c','d'];
var_dump($arr);
echo '<br>获取数组中当前指针,获取数组中当前指针指向的元素的值';
echo key($arr).'-'.current($arr);
echo '<br>将数组中的内部指针向前移动一位';
echo next($arr);
echo '<br>将数组的内部指针指向最后一个元素';
echo end($arr);
echo '<br>将数组中的内部指针倒回一位';
echo prev($arr);
echo '<br>将数组的内部指针指向第一个元素';
echo reset($arr);

数组元素操作函数

(1)array_count_values()

<?php
$a=array("A","Cat","Dog","A","Dog");
print_r(array_count_values($a));
?>

预定义超全局数组变量

已经定义好了(存在)的变量(存放的数据类型是数组)

超全局:超级全局变量,作用域(有效区域)

<?php
var_dump($_POST);
?>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <form method="post">
        <input type="text" name="tom">
        <button type="submit"></button>
    </form>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值