PHP数组详解

一、数组的初始化
PHP中的数组分为数字索引数组和非数字索引数组 。
对于数字索引,直接将键值传入array()括号中即可。注意,一个数组中的键值可以是任意数据类型。
访问数字索引数组,直接用数组名加中括号,中括号里面放要访问的元素的数组索引

<?php 
    $a = array(1,2,'wewe');
    echo $a[0].$a[1].$a[2];
    //同时我们也可以这样
    $b = array();
    $b[0] = 1;
    $b[1] = "w";
    echo $b[0].$b[1];
 ?>

对于非数字索引数组,可以用两种方法完成初始化
$key=>$vale加入到array()函数里
②声明一个空数组,一项项初始化。
这种方法当然也适用于数字索引,同时我们也可以看出,PHP的数组可以动态增加。

$b=array('name'=>'wanghao','gender'=>'male');
$b = array();
 $b['name'] = 'wanghao';
 $b['gender'] = 'male';

二、使用循环语句访问数组
①下标循环

<?php
    $a = array(1,3,'w');
    for($i=0;$i<3;$i++)
    echo $a[$i];
?>

②foreach循环

$a = array('key1'=>'value1','key2'=>'value2','key3'=>'value3');
//对关联数组遍历输出
foreach($a as $key=>$value){
    echo $key.":".$value;
    }

③使用each循环
each()函数返回数组的当全元素,并将下一元素作为当前元素。

$a = array('key1'=>'value1','key2'=>'value2','key3'=>'value3');
//对关联数组遍历输出
while($element = each($a))
{
each $element['key'].":".$element['value'];
}

④list()与each()结合,实现key和value的分离:

    $c = array('name'=>'wanghao','gender'=>'male');
    //下面的$n $f分别接收每次each()传出的$key和$value
    while(list($n,$f) = each($c)){
        echo $n."<br>";
        echo $f."<br>";
        //随后输出 name:wanghao
        //        gender:male
    }

三、多维数组
下面是一个使用多维数组的例子:

$student = array(
    array('wang',15,'boy'),
    array('Li',15,'Gril'),
    array('Tu',21,'Gril')
)

访问上面二维数组的每一个元素,可以用如下两个方法:

//使用下标访问
echo $student[0][0].$student[0][1].$student[0][2].$student[1][0].$student[1][1].$student[1][2].$student[2][0].$student[2][1].$student[2][2];
//使用循环访问
for($i = 0;$i<3;$i++)
    for($j=0;$j<3;$j++)
        echo $student[i][j];

四、其他关于数组的tips

  1. 使用sort()。sort()函数将数组按字母升序排序。如果数组的键值是数字的话,按大小排序。
  2. count()和sizeof()函数对数组元素个数进行统计。
  3. array_count_values()函数统计每个特定的值在数组中出现的次数(数组的基数集)。最后返回的是一一个包含频率表的关联数组。
$myArray = array(1,2,'erere',1,1,2,'erere','12',1,1,2);
$ac = array_count_values($myArray);
    while(list($value,$count) = each($ac)){
            echo $value.": ".$count."<br>";

运行结果如下:
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值