PHP基础篇之数组

栏目: PHP · 发布时间: 6年前

内容简介:PHP基础篇之数组

定义

PHP中的数组array就是一个有序映射,把 value(值) 关联到 key(键)。

  • array()函数声明数组

      php > $arr = array('name' => 'Tom',1 => 'Hello');   php > echo $arr['name'];   Tom   php > echo $arr[1];   Hello
  • 直接为数组元素赋值

      php > $arr['name'] = 'Tom';   php > $arr[1] = 'World';   php > print_r($arr);   Array   (       [name] => Tom       [1] => World   )

Note:

  1. 键(key)可以是一个整数(integer)或字符串(string),不能用数组和对象作为键(key)。这样做会导致一个警告:Illegal offset type。

  2. 值(value) 可以是任意类型的值。

数组的简单操作

  • 用方括号的语法新建/修改,即给变量名加上一对空的方括号(“[]”)

  • 删除数组或删除数组的一个键名/值对,用unset()

      php > $arr = array('name' => 'Tom','age' => 12);   php > print_r($arr);   Array   (       [name] => Tom       [age] => 12   )   php > $arr['name'] = 'Jack';   php > $arr['id'] = 999;   php > print_r($arr);   Array   (       [name] => Jack       [age] => 12       [id] => 999   )   php > unset($arr);   php > print_r($arr);      Notice: Undefined variable: arr in php shell code on line 1 //未定义$arr
  • 遍历数组foreach($array as $key => $value)

      php > $arr = array(1 => 'Tom', 2 => 'Jack', 3 => 'Lucy');   php > foreach($arr as $key => $value){           echo $key.'=>'.$value."/n";           }   1=>Tom   2=>Jack   3=>Lucy

Note:

unset()函数允许删除数组中的某个键,但要注意数组将不会重建索引。重建索引可以使用函数array_values()

    php > $arr = array(1 => 'Tom', 2 => 'Jack', 3 => 'Lucy');     php > unset($arr[2]);     php > print_r($arr);     Array     (         [1] => Tom         [3] => Lucy     )     php > print_r(array_values($arr));     Array     (         [0] => Tom         [1] => Lucy     )

数组常用函数

  • array_combine创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值

    array array_combine ( array $keys , array $values )

      php > $arr = array('Tom','Jack','Lucy');   php > $arr2 = array('football','basketball','tennis');   php > print_r(array_combin($arr,$arr2));   Array   (       [Tom] => football       [Jack] => basketball       [Lucy] => tennis   )
  • array_count_values统计数组中所有的值出现的次数

    array array_count_values ( array $input )

      php > $arr = array('Tom','Jack','football','Jack','football');   php > print_r(array_count_values($arr));   Array   (       [Tom] => 1       [Jack] => 2       [football] => 2   )
  • array_diff计算数组的差集

    array array_diff ( array $array1 , array $array2 [, array $ … ] )

      php > $arr = array('Tom','Jack','Lucy','Mark');   php > $arr2 = array('Jack','Tom','Mark');   php > print_r( array_diff($arr,$arr2));   Array   (       [2] => Lucy   )

    Note: array_diff()返回一个数组,该数组包括了所有在 $arr1 中但是不在任何其它参数数组中的值。注意键名保留不变。

  • array_flip交换数组中的键和值

    array array_flip ( array $trans )

      php > $arr = array('Tom' => 'football','Jack' => 'basketball','Lucy' =>         'tennis');   php > print_r (array_flip($arr));   Array   (       [football] => Tom       [basketball] => Jack       [tennis] => Lucy   )

    Note: 如果同一个值出现多次,则最后一个键名将作为它的值,所有其它的都将丢失。

  • array_keys返回数组中所有的键名

    array array_keys ( array $input [, mixed $search_value [, bool $strict ]] )

    如果指定了可选参数 search_value,则只返回该值的键名。

      php > $arr = array('Tom','Jack','football','Jack','football');   php > print_r (array_keys($arr));   Array   (       [0] => 0       [1] => 1       [2] => 2       [3] => 3       [4] => 4   )   php > print_r (array_keys($arr,'football'));   Array   (       [0] => 2       [1] => 4   )
  • in_array检查数组中是否存在某个值

    bool in_array ( mixed $needle , array $haystack [, bool $strict ] )

    如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。

      php > $arr['name'] = 'Tom';   php > $arr[1] = 'World';   php > print_r($arr);   Array   (       [name] => Tom       [1] => World   )

    0

  • array_merge合并一个或多个数组

    array array_merge ( array $array1 [, array $array2 [, array $… ]] )

    如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。

      php > $arr['name'] = 'Tom';   php > $arr[1] = 'World';   php > print_r($arr);   Array   (       [name] => Tom       [1] => World   )

    1

  • array_unique移除数组中重复的值

    array array_unique ( array $array )

    注意键名保留不变。

      php > $arr['name'] = 'Tom';   php > $arr[1] = 'World';   php > print_r($arr);   Array   (       [name] => Tom       [1] => World   )

    2

  • count计算数组中元素个数

    int count( $array )

      php > $arr['name'] = 'Tom';   php > $arr[1] = 'World';   php > print_r($arr);   Array   (       [name] => Tom       [1] => World   )

    3

  • sort数组排序

    bool sort ( array &$array [, int $sort_flags ] )

    此函数将为 array 中的元素赋与新的键名。这将删除原有的键名,而不是仅仅将键名重新排序。成功返回true,失败返回false。

      php > $arr['name'] = 'Tom';   php > $arr[1] = 'World';   php > print_r($arr);   Array   (       [name] => Tom       [1] => World   )

    4

    Note: 对一些有混合类型的值的数组 排序 时要小心,sotr()会产生不可预知的效果。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Writing Apache Modules with Perl and C

Writing Apache Modules with Perl and C

Lincoln Stein、Doug MacEachern / O'Reilly Media, Inc. / 1999-03 / USD 39.95

Apache is the most popular Web server on the Internet because it is free, reliable, and extensible. The availability of the source code and the modular design of Apache makes it possible to extend Web......一起来看看 《Writing Apache Modules with Perl and C》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

MD5 加密
MD5 加密

MD5 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换