• PHP数组


    数组

    PHP 中的 数组 实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性。数组元素的值也可以是另一个数组。树形结构和多维数组也是允许的。

    解释这些结构超出了本手册的范围,但对于每种结构至少会提供一个例子。要得到这些结构的更多信息,建议参考有关此广阔主题的其它著作。

    语法

    定义数组 array()

    可以用 array() 语言结构来新建一个 array。它接受任意数量用逗号分隔的 键(key) => 值(value) 对。

    array(  key =>  value
         , ...
         )
    // 键(key) 可是是一个 整数(integer)字符串(string)
    // 值(value) 可以是任意类型的值
    <?php
    $arr 
    = array("foo" => "bar"12 => true);

    echo 
    $arr["foo"]; // bar
    echo $arr[12];    // 1
    ?>

    key 可以是 integer 或者 string。如果key是一个 integer 的标准表示,则被解释为整数(例如 "8" 将被解释为 8,而 "08" 将被解释为 "08")。key 中的浮点数被取整为 integer。在 PHP 中索引数组与关联 数组 是相同的,它们都可以同时包含 整型 和 字符串 的下标。

    值可以是任意的 PHP 类型。

    <?php
    $arr 
    = array("somearray" => array(=> 513 => 9"a" => 42));

    echo 
    $arr["somearray"][6];    // 5
    echo $arr["somearray"][13];   // 9
    echo $arr["somearray"]["a"];  // 42
    ?>

    如果对给出的值没有指定键名,则取当前最大的整数索引值,而新的键名将是该值加一。如果指定的键名已经有了值,则该值会被覆盖。

    <?php
    // 这个数组与下面的数组相同 ...
    array(=> 433256"b" => 12);

    // ...
    array(=> 43=> 32=> 56"b" => 12);
    ?> 
    Warning

    自 PHP 4.3.0 起,上述的索引生成方法改变了。如今如果给一个当前最大键名是负值的数组添加一个新值,则新生成的的索引将为零(0)。以前新生成的索引为当前最大索引加一,和正值的索引相同。

    使用 TRUE 作为键名将使 integer 1 成为键名。使用 FALSE 作为键名将使 integer 0 成为键名。使用 NULL 作为键名将等同于使用空字符串。使用空字符串作为键名将新建(或覆盖)一个用空字符串作为键名的值,这和用空的方括号不一样。

    不能用数组和对象作为键(key)。这样做会导致一个警告:Illegal offset type

    用方括号的语法新建/修改

    可以通过明示地设定值来改变一个现有的数组。

    这是通过在方括号内指定键名来给数组赋值实现的。也可以省略键名,在这种情况下给变量名加上一对空的方括号(“[]”)。

    $arr[key] = value;
    $arr[] = value;
    // key 可以是 integerstring
    // value 可以是任意类型的值

    如果 $arr 还不存在,将会新建一个。这也是一种定义数组的替换方法。要改变一个值,只要给它赋一个新值。如果要删除一个键名/值对,要对它用 unset()

    <?php
    $arr 
    = array(=> 112 => 2);

    $arr[] = 56;    // This is the same as $arr[13] = 56;
                    // at this point of the script

    $arr["x"] = 42// This adds a new element to
                    // the array with key "x"
                    
    unset($arr[5]); // This removes the element from the array

    unset($arr);    // This deletes the whole array
    ?>
  • 相关阅读:
    HDU 4334
    HDU 1280
    HDU 1060
    HDU 4033
    大三角形分成4个面积相等的小三角形
    HDU 1087
    HDU 4313
    Sleep(0)及其使用场景
    Decorator(装饰、油漆工)对象结构型模式
    Debug Assertion Failed!
  • 原文地址:https://www.cnblogs.com/wanger1994/p/3705384.html
Copyright © 2020-2023  润新知