njsuntop 发表于 2017-3-21 11:24:41

php数组函数list

  先从使用角度简单介绍下php的数组情况。
  php数组是个相当灵活的数据结构,数组元素有两部分:key和value,说白了,php数组就是个key-value集合,有点儿类似于C#中的dictionary;但是,php数组更灵活,php数组可以实现强类型语言中的数组、栈、队列等数据结构。暂且不讨论php数组各种数据结构的使用,咱先说说php数组元素。
  前面说了,php数组元素有两部分:key和value,大家先比较下面两部分代码在取数组元素时,有什么不同?

int arr[] = {2,4,6,8};
int test = arr;

<?php
$arr = array(2,4,6,8);
$test = $arr;
?>
  C++数组取元素,数字索引是个相对于首地址的偏移值,偏移值从头到尾是连续的;php数组取元素,数字索引是key,是标记,是哈希参数,不是连续的偏移值,所以下面php数组是合法的。

<?php
$arr = array(
"comment"=>"personal information",
0=>"zxp",
1=>"male",
"age"=>29,
5=>"北京西三旗"
);
$arr = "PHPer";
?>
  接下来再分析php数组函数list。其实list不是函数,是php的关键字,你见过给函数赋值么??函数调用返回的就是值,值给值赋值,不是荒唐么,所以很明显list不是函数。
  那么,list这个关键字的作用怎样的呢?咱先看某些php手册上的说明:
  

         第一部分说对了,第二部分就不对了,举个例子

<?php
$arr = array(
"comment"=>"personal information",
//0=>"zxp",
1=>"male",
"age"=>29,
5=>"北京西三旗"
);
list(,$gender,,,,$position) = $arr;//按变量顺序去数组中找对应key的元素值
/*$gender顺序是1,找$arr;$position顺序是5,找$arr*/
var_dump($gender);
var_dump($position);
?>
  输出

string 'male' (length=4)
string '北京西三旗' (length=15)

  所以,list的作用是:以list中变量的顺序为key,去数组中找对应的元素值,能找到就赋值给变量,找不到就报错。
页: [1]
查看完整版本: php数组函数list