BPM-第五章-数组


疑问

  • PHP中基本所有的东西都是哈希????????
  • 如果数组的底层实现是哈希,那如何保证顺序性???
  • 如果是顺序存储的,那如何保证快速查找???

数组定义

  • PHP中的数组可以包含不同类型的元素。每个元素都通过一个特殊的标识符进行区分,成为key。在PHP的数组中,保存的是一个个实体,每个实体包含两项:key, value。这些key可以是数值(numerical)或者关联(associative)。
  • 对于使用数值索引的数组,数组越界的时候会提示PHP Notice: Undefined offset: 4 in /home/liu/index.php on line 3。
  • 对于使用关联索引的数组,当使用不存在的key的时候,会提示PHP Notice: Undefined index: c in /home/liu/index.php on line 3。
  • 定义一个数值键的数组:array("hello", "world"),或者array(1=>"hello", 2=>"world")。数值键的数组和关联键的数组都有一个统一的声明方式。
  • 无论是数值键数组还是关联键数组,都依赖一种称为“数组指针”的特性。

    数组的内部指针是数组内部的组织机制,指向一个数组中的某个元素,默认指向数组中第一个元素,通过移动或者改变指针的位置可以访问数组中的任意元素。
    指针位置非法之后,不能做相对移动(next, prev),只能做绝对移动(reset, end)。
    并不能直接操作数组指针,而是通过内置的语言特性或者函数来便利数组。

  • PHP在创建数组的时候,不需要指定数组的大小。
  • 数组在创建的时候不需要指定大小,引用数组的元素使用一对中括号。可以用赋值代替创建。$state[0] = "hello";这样就创建了一个数组,同时第一个元素赋值。
  • PHP中的数组可以统一看成key-value的对,对于数值型的索引,并不需要索引是连续的。而且向数组中添加一个键值对是在数组的末尾添加。
<?php
    $name[1] = "lucy";
    $name[0] = "lily";
    reset($name);
    foreach($name as $tmp) {
        echo $tmp."<br>";
    }
 ?>
// lucy lily

猜你喜欢

转载自www.cnblogs.com/person3/p/9287999.html