php数组(一)

2014年1月23日 发表评论 阅读评论

一、概念

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

二、数组的创建

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

array(  key =>  value
     , ...
     )
// 键(key)可是是一个整数 integer 或字符串 string
// 值(value)可以是任意类型的值

最后一个数组单元之后的逗号可以省略。通常用于单行数组定义中,例如常用 array(1, 2) 而不是 array(1, 2, )。对多行数组定义通常保留最后一个逗号,这样要添加一个新单元时更方便。

注:

1、自 5.4 起可以使用短数组定义语法,用 [] 替代 array()。

2、经常也会使用explode字符串分隔函数来创建数组。

示例:

<?php
$array = array(
    "foo" => "bar",
    "bar" => "foo",
);
// 自 PHP 5.4 起
$array = [
    "foo" => "bar",
    "bar" => "foo",
];
?>

注:key 为可选项。如果未指定,PHP 将自动使用之前用过的最大 integer 键名加上 1 作为新的键名

如下例,通过var_dump函数输出数组:

<?php
$array = array(
         "a",
         "be",
    6 => "c",
         "dfg",
);
var_dump($array);
?>
//输出结果为:
array(4) {
  [0]=>
  string(1) "a"
  [1]=>
  string(2) "be"
  [6]=>
  string(1) "c"
  [7]=>
  string(3) "dfg"
}

注:以上未指定key键,而通过数值递增出现的数组习惯上我们称之为数值数值(即每个元素都有一个数字ID键)。与之相对应的是关联数组(即在存储值时,通过key->vaule的方式对应)。如:

$ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34);

三、多维数组

多维数组可以理解为数组的嵌套,即数组里的元素也是一个数组。如:

<?php
$families = array
(
  "Griffin"=>array("Peter",  "Lois",  "Megan"),
  "Quagmire"=>array("Glenn"),
  "Brown"=>array("Cleveland",  "Loretta",  "Junior")
);
//var_dump($families);
print_r($families);
?>
//执行后其输出结果为:
Array
(
    [Griffin] => Array
        (
            [0] => Peter
            [1] => Lois
            [2] => Megan
        )
    [Quagmire] => Array
        (
            [0] => Glenn
        )
    [Brown] => Array
        (
            [0] => Cleveland
            [1] => Loretta
            [2] => Junior
        )
)

四、修改数组内容

常用用来修改数组值的方法是用方括号的语法来修改数组:$arr[] = value ,如:

$arr = array("a" => "视频", "b"=>"教程", "c" => "六");
$arr['a']    = "运维";
$arr['c']    = "之路";
print_r($arr); 

注:在向数组内增加元素时,经常会用到另外一个函数array_push() 。




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.