您的位置: 飞扬精品软件园 >> 文章中心 >> 软件使用 >> 程序开发 >> PHP基础之数组

相关文章链接

本类文章排行

最新新闻资讯

    PHP基础之数组

    PHP基础之数组


    • 阅览次数: 文章来源: 原文作者: 整理日期: 2010-07-23

    PHP 中的数组实际上是一个有序图。图是一种把 values 映射到 keys 的类型。此类型在很多方面做了优化,因此你可以把它当成真正的数组来使用,或列表(矢量),散列表(是图的一种实现),字典,集合,栈,队列以及更多可能性。因为可以用另一个 PHP 数组作为值,也可以很容易地模拟树。

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

    语法

    定义 array()

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

    array( [key =>]
    value
         , ...
         )
    // key 可以是 integer 或者 string
    // value 可以是任何值
    

     

     "bar", 12 => true);
    
    echo $arr["foo"]; // bar
    echo $arr[12];    // 1
    ?> 
    

    key 可以是 integer 或者 string。如果键名是一个 integer 的标准表达方法,则被解释为整数(例如 "8" 将被解释为 8,而 "08" 将被解释为 "08")。PHP 中数组下标的变量类型不会对数组造成影响,数组的类型只有一种,它可以同时包含整型和字符串型的下标。 

    值可以是任何值。

     array(6 => 5, 13 => 9, "a" => 42));
    
    echo $arr["somearray"][6];    // 5
    echo $arr["somearray"][13];  // 9
    echo $arr["somearray"]["a"];  // 42
    ?>  
    

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

     43, 32, 56, "b" => 12);
    
    // ...this array
    array(5 => 43, 6 => 32, 7 => 56, "b" => 12);
    ?>  
    

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

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

    用方括号的语法新建/修改可以通过明示地设定值来改变一个现有的数组。

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

    $arr[key] = value;
    $arr[] = value;
    // key 可以是 integer 或者 string
    // value 可以为任何值。
    

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

     1, 12 => 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
    ?> 
    

    注: 如上所述,如果你给出方括号但没有指定键名,则取当前最大整数索引值,新的键名将是该值 + 1。如果当前还没有整数索引,则键名将为 0。如果制定的键名已经有值了,该值将被覆盖。

     

     

    注意这里所使用的最大整数键名不一定当前就在数组中。它只要在上次数组重新生成索引后曾经存在过就行了。以下例子说明了:
     $value) {
       unset($array[$i]);
    }
    print_r($array);
    
    // 添加一个单元(注意新的键名是 5,而不是你可能以为的 0)
    $array[] = 6;
    print_r($array);
    
    // 重新索引:
    $array = array_values($array);
    $array[] = 7;
    print_r($array);
    ?>  
    

    以上例子将产生如下输出:

    Array
    (
        [0] => 1
        [1] => 2
        [2] => 3
        [3] => 4
        [4] => 5
    )
    Array
    (
    )
    Array
    (
        [5] => 6
    )
    Array
    (
        [0] => 6
        [1] => 7
    )
    

    [1] [2] [3]


查看所有评论

网友对PHP基础之数组的评论

网名:
主题:
内容:
验证码: