• 数组也许是至今来说对于PHP开发者来说数据组织能力最强工具。因此,学好它可以为成为一名优秀的开发者打下基础。

    当然,对于通过考试来说,你也没有必要把手册中关于数组的知识完全掌握,但是对于在学习时适当的做一些笔记是非常重要的:因为数组常被用来操作庞大数量的数据,对此PHP的内建函数的运行效率绝对会比任何自定义函数来的高,因此,可以给程序带来良好的运行效率与可伸缩性。

    [ 阅读全文 ] 2010-04-12 10:00:48
  • 数组常被当作堆栈(后进先出:LIFO)与队列(先进先出:FIFO)结构来使用。PHP提供了一组函数可以用于push与pop(堆栈)还有shift与unshift(队列)来操作数组元素。

    [ 阅读全文 ] 2010-04-12 09:45:25
  • PHP核心提供了总共11个函数用来处理各种不同的数组排序需求。最简单也是最直接的是使用sort(),来对数组中元素进行基于值的排序:

    $array = array('a' => 'foo', 'b' => 'bar', 'c' => 'baz');
    
    sort($array);
    
    var_dump($array);

    就像看到的那样,sort()改变的数组原始变量,参数通过引用传递。这就意味着只能传入变量,而不是直接量。

    执行结果如下:

    array(3) {
      [0]=>
      string(3) "bar"
      [1]=>
      string(3) "baz"
      [2]=>
      string(3) "foo"
    }
    [ 阅读全文 ] 2010-04-12 08:42:31
  • 遍历数组是数组最常见的操作之一。与其他语言的数组的连续索引的特性不同,PHP提供了对松散机制的数组的支持,因为普通的循环无法遍历那些键值不连续的数组。试想下例:

    $a = array ('a' => 10, 10 => 20, 'c' => 30);

    很明显,我们学过的尚无应付以上数组遍历操作的循环结构——除非,你很清楚数组中所有元素的键值,手动操作来实现遍历将是非常痛苦的。

    (Siemen注:本章学习的就是如何使用PHP对于松散的数组提供的支持)

    [ 阅读全文 ] 2010-04-11 05:25:52
  • 还记得我们在第一章的“PHP基础”中提到的,许多操作符对作用于数组的效果是与众不同的。比如加号操作符 + 可以用来合并两个数组:

    $a = array (1, 2, 3);
    $b = array ('a' => 1, 'b' => 2, 'c' => 3);
    
    var_dump ($a + $b);

    输出结果如下:

    array(6) {
      [0]=>
      int(1)
      [1]=>
      int(2)
      [3]=>
      int(3)
      ["a"]=>
      int(1)
      ["b"]=>
      int(2)
      ["c"]=>
      int(3)
    }

    那么为什么即使两个数组中元素的值都是相同的而,输出的结果会是两个数组变量中所有元素的集合;原因就是他们的键值不同——如果是相同键值(无论是整数还是字符),那么靠后的操作数中的同键元素将会覆盖相对靠前的同键元素:

    $a = array(1, 2, 3);
    $b = array('a' => 1, 2, 3);
    
    var_dump($a + $b);

    结果如下:

    array(4) {
      [0]=>
      int(1)
      [1]=>
      int(2)
      [3]=>
      int(3)
      ["a"]=>
      int(1)
    }
    [ 阅读全文 ] 2010-04-10 02:33:36
  • 数组中元素的意义是存放变量。每个元素存放一个值,且用一个键值指向它。正如我们上一节所介绍的,键值可以是整数或者任意长度的字符。

    有两种方式可以创建一个数组。第一种是显式地调用array()语法结构:

    $a = array (10, 20, 30);
    $a = array ('a' => 10, 'b' => 20, 'c' => 30);
    $a = array (5 => 1,  3 => 2, 1 => 3,);
    $a = array();

    以上的第一行代码创建了一个仅包含三个值的数组。这样的话,其中每个元素仍然有它自己的键值,PHP会为其中每一个没有指定键的元素自动加上以0开始的键。在第二个例子中,同样是三个元素,但期每一个键都被指定了一个字母左右键值(特别提醒的是字母键值长度可以任意)。第三个例子中,键值打破常规自增,第一个元素的键值是5——需要提醒的是最后一个逗号后面没元素,这在语法上是允许的,且不会影响到最终结果。最后的第四例创建了一个空的数组。

    那么第二种创建数组的方法是使用数组操作符“[]”:

    $x[] = 10;
    $x['aa'] = 11;
    
    echo $x[0]; // 输出10

    正如你看到的,使用操作符直接创建数组要比array()去创建数组来的高效的多:在第一行中,我们向数组变量$x中添加了一个新的值。由于我们没有给出键值,PHP会自动将其下一个自动编号的键值赋给这个新的数组元素。在第二行中,我们指定了一个’aa’作为键值添加到数组变量$x中。需要提醒的是,我们并没有明显指定$x是一个数组,可以这样使用意味着PHP会将其自动转换成数组供我们使用,除非它本身就是数组。如果$x是空的,那仅仅被转换成一个空的数组。

    [ 阅读全文 ] 2010-04-09 08:41:36
  • 数组是PHP中无可争议的高级数据结构之王。PHP中的数组异常松散——允许数值自增键、字母键甚至两者混合,且可以存放任何类型的值(包括存放其他数组)。拥有超过70个方法可以操作数组,几乎你能想得到的一定能能做得到——而且远不止此。

    • 3.1 数组基础
      • 3.1.1 打印数组
      • 3.1.2 索引数组与关联数组
      • 3.1.3 多维数组
      • 3.1.4 拆解数组
    • 3.2 数组操作
      • 3.2.1 数组间的比较
      • 3.2.2 统计、查找与删除
      • 3.2.3 键值颠倒与数组翻转
    • 3.3 遍历数组
      • 3.3.1 数组指针
      • 3.3.2 快捷遍历
      • 3.3.3 被动遍历
    • 3.4 数组排序
      • 3.4.1 其他排序选项
      • 3.4.2 随机化
    • 3.5 数组堆栈、队列与设置
      • 3.5.1 功能设置
    • 3.6 总结
    [ 阅读全文 ] 2010-04-08 11:24:27
  • 忙乎了一天:购买GoDaddy主机 解析域名 上传折腾 从CSDN博客上把到昨天为止的进度全部迁移过来。

    之前的火山互联确实的主机实在是让我无法忍受。你懂的,国内大多都这样的。

    现在用着还是蛮舒服的。

    [ 阅读全文 ] 2010-04-08 10:40:15
  • 函数时PHP语言中最常用的组件(或许这适用于任何语言)。没有了它,编写重用代码几乎不可能办到——更别说面向对象开发技术了。

    因此,你必须精通函数而非略懂皮毛,并且了解引用传参和可变个数传参。考试中会遇到不少围绕函数工作原理的问题——幸运的是这些概念相对简单且易于理解,在本章中都有讲到。

    [ 阅读全文 ] 2010-04-08 10:31:47