• 技术文章 >后端开发 >php教程

    PHP_005 数组

    2016-06-23 13:39:37原创513

    数组是一个能在单个变量中存储多个值的特殊变量。

    创建数组

    在 PHP 中,array() 函数用于创建数组:

    array();

    在 PHP 中,有三种类型的数组:

    数值数组 - 带有数字 ID 键的数组

    关联数组 - 带有指定的键的数组,每个键关联一个值

    多维数组 - 包含一个或多个数组的数组

    数值数组

    这里有两种创建数值数组的方法:

    自动分配 ID 键(ID 键总是从 0 开始):

    $cars=array("Volvo","BMW","Toyota");

    人工分配 ID 键:

    $cars[0]="Volvo";
    $cars[1]="BMW";
    $cars[2]="Toyota";

    下面的实例创建一个名为 $cars 的数值数组,并给数组分配三个元素,然后打印一段包含数组值的文本:

    count() 函数

    count() 函数用于返回数组的长度(元素的数量):

    遍历数值数组

    遍历并打印数值数组中的所有值,您可以使用 for 循环,如下所示:

    ";}?>

    关联数组

    关联数组是使用您分配给数组的指定的键的数组。

    这里有两种创建关联数组的方法:

    $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

    or:

    $age['Peter']="35";
    $age['Ben']="37";
    $age['Joe']="43";

    随后可以在脚本中使用指定的键:

    "35","Ben"=>"37","Joe"=>"43");    echo "Peter is " . $age['Peter'] . " years old.";?>

    遍历关联数组

    遍历并打印关联数组中的所有值,您可以使用 foreach 循环,如下所示:

    "35","Ben"=>"37","Joe"=>"43");    foreach($age as $x=>$x_value)    {        echo "Key=" . $x . ", Value=" . $x_value;        echo "
    "; }?>

    多维数组

    多维数组是包含一个或多个数组的数组。

    在多维数组中,主数组中的每一个元素也可以是一个数组,子数组中的每一个元素也可以是一个数组。

    实例

    在这个实例中,我们创建了一个自动分配 ID 键的多维数组:

    $families = array(    "Griffin"=>array        (        "Peter",        "Lois",        "Megan"        ),    "Quagmire"=>array        (        "Glenn"        ),    "Brown"=>array        (        "Cleveland",        "Loretta",        "Junior"        ));

    上面的数组将输出如下:

    Array([Griffin] => Array    (    [0] => Peter    [1] => Lois    [2] => Megan    )[Quagmire] => Array    (    [0] => Glenn    )[Brown] => Array    (    [0] => Cleveland    [1] => Loretta    [2] => Junior    ))

    实例 2

    让我们试着显示上面数组中的某个值:

    echo "Is " . $families['Griffin'][2] . " a part of the Griffin family?";

    上面的代码将输出:

    Is Megan a part of the Griffin family?

    数组排序

    sort() - 对数组进行升序排列

    rsort() - 对数组进行降序排列

    asort() - 根据关联数组的值,对数组进行升序排列

    ksort() - 根据关联数组的键,对数组进行升序排列

    arsort() - 根据关联数组的值,对数组进行降序排列

    krsort() - 根据关联数组的键,对数组进行降序排列

    sort() - 对数组进行升序排列

    下面的实例将 $cars 数组中的元素按照字母升序排列:

    下面的实例将 $numbers 数组中的元素按照数字升序排列:

    rsort() - 对数组进行降序排列

    下面的实例将 $cars 数组中的元素按照字母降序排列:

    下面的实例将 $numbers 数组中的元素按照数字降序排列:

    asort() - 根据数组的值,对数组进行升序排列

    下面的实例根据数组的值,对关联数组进行升序排列:

    "35","Ben"=>"37","Joe"=>"43");asort($age);?>

    ksort() - 根据数组的键,对数组进行升序排列

    下面的实例根据数组的键,对关联数组进行升序排列:

    "35","Ben"=>"37","Joe"=>"43");ksort($age);?>

    arsort() - 根据数组的值,对数组进行降序排列

    下面的实例根据数组的值,对关联数组进行降序排列:

    "35","Ben"=>"37","Joe"=>"43");arsort($age);?>

    krsort() - 根据数组的键,对数组进行降序排列

    下面的实例根据数组的键,对关联数组进行降序排列:

    "35","Ben"=>"37","Joe"=>"43");krsort($age);?>

    Array 函数

    函数 描述
    array() 创建数组。
    array_change_key_case() 返回其键均为大写或小写的数组。
    array_chunk() 把一个数组分割为新的数组块。
    array_column() 返回输入数组中某个单一列的值。
    array_combine() 通过合并两个数组(一个为键名数组,一个为键值数组)来创建一个新数组。
    array_count_values() 用于统计数组中所有值出现的次数。
    array_diff() 比较数组,返回两个数组的差集(只比较键值)。
    array_diff_assoc() 比较数组,返回两个数组的差集(比较键名和键值)。
    array_diff_key() 比较数组,返回两个数组的差集(只比较键名)。
    array_diff_uassoc() 比较数组,返回两个数组的差集(比较键名和键值,使用用户自定义的键名比较函数)。
    array_diff_ukey() 比较数组,返回两个数组的差集(只比较键名,使用用户自定义的键名比较函数)。
    array_fill() 用给定的键值填充数组。
    array_fill_keys() 用给定的指定键名的键值填充数组。
    array_filter() 用回调函数过滤数组中的元素。
    array_flip() 反转/交换数组中的键名和对应关联的键值。
    array_intersect() 比较数组,返回两个数组的交集(只比较键值)。
    array_intersect_assoc() 比较数组,返回两个数组的交集(比较键名和键值)。
    array_intersect_key() 比较数组,返回两个数组的交集(只比较键名)。
    array_intersect_uassoc() 比较数组,返回两个数组的交集(比较键名和键值,使用用户自定义的键名比较函数)。
    array_intersect_ukey() 比较数组,返回两个数组的交集(只比较键名,使用用户自定义的键名比较函数)。
    array_key_exists() 检查指定的键名是否存在于数组中。
    array_keys() 返回数组中所有的键名。
    array_map() 将用户自定义函数作用到给定数组的每个值上,返回新的值。
    array_merge() 把一个或多个数组合并为一个数组。
    array_merge_recursive() 递归地把一个或多个数组合并为一个数组。
    array_multisort() 对多个数组或多维数组进行排序。
    array_pad() 将指定数量的带有指定值的元素插入到数组中。
    array_pop() 删除数组中的最后一个元素(出栈)。
    array_product() 计算数组中所有值的乘积。
    array_push() 将一个或多个元素插入数组的末尾(入栈)。
    array_rand() 从数组中随机选出一个或多个元素,返回键名。
    array_reduce() 通过使用用户自定义函数,迭代地将数组简化为一个字符串,并返回。
    array_replace() 使用后面数组的值替换第一个数组的值。
    array_replace_recursive() 递归地使用后面数组的值替换第一个数组的值。
    array_reverse() 将原数组中的元素顺序翻转,创建新的数组并返回。
    array_search() 在数组中搜索给定的值,如果成功则返回相应的键名。
    array_shift() 删除数组中的第一个元素,并返回被删除元素的值。
    array_slice() 返回数组中的选定部分。
    array_splice() 把数组中的指定元素去掉并用其它值取代。
    array_sum() 返回数组中所有值的和。
    array_udiff() 比较数组,返回两个数组的差集(只比较键值,使用一个用户自定义的键名比较函数)。
    array_udiff_assoc() 比较数组,返回两个数组的差集(比较键名和键值,使用内建函数比较键名,使用用户自定义函数比较键值)。
    array_udiff_uassoc() 比较数组,返回两个数组的差集(比较键名和键值,使用两个用户自定义的键名比较函数)。
    array_uintersect() 比较数组,返回两个数组的交集(只比较键值,使用一个用户自定义的键名比较函数)。
    array_uintersect_assoc() 比较数组,返回两个数组的交集(比较键名和键值,使用内建函数比较键名,使用用户自定义函数比较键值)。
    array_uintersect_uassoc() 比较数组,返回两个数组的交集(比较键名和键值,使用两个用户自定义的键名比较函数)。
    array_unique() 删除数组中重复的值。
    array_unshift() 在数组开头插入一个或多个元素。
    array_values() 返回数组中所有的值。
    array_walk() 对数组中的每个成员应用用户函数。
    array_walk_recursive() 对数组中的每个成员递归地应用用户函数。
    arsort() 对关联数组按照键值进行降序排序。
    asort() 对关联数组按照键值进行升序排序。
    compact() 创建一个包含变量名和它们的值的数组。
    count() 返回数组中元素的数目。
    current() 返回数组中的当前元素。
    each() 返回数组中当前的键/值对。
    end() 将数组的内部指针指向最后一个元素。
    extract() 从数组中将变量导入到当前的符号表。
    in_array() 检查数组中是否存在指定的值。
    key() 从关联数组中取得键名。
    krsort() 对关联数组按照键名降序排序。
    ksort() 声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:PHP_005 数组

      相关课程推荐

    • PHP入门视频教程之一周学会PHP

      所有计算机语言的学习都要从基础开始,《PHP入门视频教程之一周学会PHP》不仅是PHP的基础部分更主要的是PHP语言的核心技术,是学习PHP必须掌握的内容,任何PHP项目的实现都离不开这部分的内容,通过一周的深入学习让你快速掌握PHP的各项技能,助你的工作和学习更上层楼!

      PHP教程246441次播放


    • 弹指间学会HTML视频教程

      《弹指间学会HTML视频教程》从最基本的概念开始讲起,步步深入,带领大家学习HTML,了解各种常用标签的意义以及基本用法,学习HTML知识为以后的学习打下基础

      HTML教程70783次播放


    • 弹指间学会CSS视频教程

      CSS即层叠样式表(Cascading StyleSheet)。 在网页制作时采用层叠样式表技术,可以有效地对页面的布局、字体、颜色、背景和其它效果实现更加精确的控制。

      CSS教程43862次播放


    • javascript初级视频教程

      《javascript初级视频教程》是JavaScript的入门课程,旨在让大家认识,了解JavaScript的常见概念

      JavaScript教程91069次播放


    • CSS3 最新视频教程

      《CSS3 最新视频教程》中 CSS 用于控制网页的样式和布局。 CSS3 是最新的 CSS 标准, 本教程向您讲解 CSS3 中的新特性。通过实例进行讲解,更容易提高学习的效率!

      CSS3教程30704次播放


    1/1