红联Linux门户
Linux帮助

Linux下的编程PHP高级技巧全放送(续)

发布时间:2006-10-26 08:45:26来源:红联作者:romeobh
  五、丰富的数组函数

  PHP 4.0中新添加了30个与组数有关的函数,其中一些常见的函数可以判断一个数组中是否包含某个元素,对一个数组中的元素进行计数,添加或删除数组中的元素或者对数组中的元素进行排序。

  如果有一个很大的数组,而你需要找出其中是否包含一个特定的元素,就可以使用in_array()。下面的例子将显示“Not found in this array”,因为在一个名字为$namesArray的数组中查找Albert,而在$namesArray数组中不存在这样一个元素。

[code]    $lookingFor = "Albert";
  if (in_array($lookingFor, $namesArray)) {
  echo "You've found it!";
  } else {
  echo "Not found in this array!";
  }
  ?>[/code]

  如果把$lookingFor的值改为Mary,就会得到“You've found it!”的信息,因为Mary是$namesArray数组中的一个元素。

  如果要对一个数组中的元素个数进行计数,只要简单地使用count()函数即可:

[code]    $count = count($namesArray); ?>[/code]

  返回的$count的值为7。
文章评论

共有 2 条评论

  1. romeobh 于 2006-10-26 08:47:42发表:

      现在我们已经掌握了如何添加元素和合并数组,我们再来看看如何从一个数组中删除元素。从一个数组的末尾删除一个元素可以使用array_pop()函数,使用array_shift()函数可以从一个数组的开头删除一个元素。尽管使用array_pop()或 array_shift()从数组中删除了一个元素,你还可以把这个元素当作一个变量来使用。使用array_pop()从一个数组的末尾删除一个元素:

    [code]   /*建立一个数组*/
      $fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
      /* 从数组的末尾删除一个元素*/
      $popped = array_pop($fruitArray);
      /* 显示删除后数组的内容和你删除的元素*/
      while (list($key,$value) = each($fruitArray)) {
      echo "$key : $value
    ";
      }
      echo "
    and finally, in $popped: $popped";
      ?>[/code]

      运行上面的脚本会得到下面的结果:

    [code]  0 : apple
      1 : orange
      2 : banana
      3 : kiwi
      and finally, in $popped: pear[/code]

      我们再来讨论一个从一个数组的末尾删除元素的例子:

    [code]    /* 建立一个数组*/
      $fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
      /*从一个数组的开始删除一个元素*/
      $shifted = array_shift($fruitArray);
      /* 显示删除后数组的内容和你删除的元素*/
      while (list($key,$value) = each($fruitArray)) {
      echo "$key : $value
    ";
      }
      echo "
    and finally, in $shifted: $shifted";
      ?>[/code]

      运行上述脚本会得到如下的显示结果:

    [code]  0 : orange
      1 : banana
      2 : kiwi
      3 : pear
      and finally, in $shifted: apple[/code]

      另外还有几个函数可以对数组中的元素进行排序,但在这里我们将只简要介绍基本的排序函数,说明排序的过程:

    [code]    $fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
      /* 对数组进行排序*/
      sort($fruitArray);
      /*显示每个元素及其序号*/
      while (list($key,$value) = each($fruitArray)) {
      echo "$key : $value
    ";[/code]

  2. romeobh 于 2006-10-26 08:46:41发表:

      可以在一个数组的开头或结尾处添加元素,还可以使用array_merge()来建立一个包含二个或更多数组中元素的新数组,合并时,元素的顺序会按指定的顺序排列,如果原来的数组是被排过序的,在合并后需要对它重新排序。

      我们可以首先利用array_push()在数组的结尾处添加一个元素:

    [code]    $fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
      /* 向数组中添加元素 */
      array_push($fruitArray, "grape", "pineapple", "tomato");
      /*显示每个元素及其序号*/
      while (list($key,$value) = each($fruitArray)) {
      echo "$key : $value
    ";
      }
      ?>[/code]

      运行上面的程序将得到下面的结果:

    [code]  0 : apple
      1 : orange
      2 : banana
      3 : kiwi
      4 : pear
      5 : grape
      6 : pineapple
      7 : tomato[/code]

      如果需要在数组的开头添加元素,其代码与上面的代码差不多,唯一的不同之处是需要用:

    [code]    /* 建立一个数组*/
      $fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
      /* 向数组中添加元素*/
      array_unshift($fruitArray, "grape", "pineapple", "tomato");
      /* 显示每个元素及其序号*/
      while (list($key,$value) = each($fruitArray)) {
      echo "$key : $value
    ";
      }
      ?>[/code]

      array_unshift()代替array_push()。运行上面的程序将得到下面的结果:

    [code]  0 : grape
      1 : pineapple
      2 : tomato
      3 : apple
      4 : orange
      5 : banana
      6 : kiwi
      7 : pear[/code]

      array_merge()函数可以把二个或更多的数组合并为一个数组。
     
    [code]   $fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
      /*/建立第二个数组*/
      $vegArray = array("carrot", "green beans", "asparagus",
    "artichoke", "corn");
      /*把这二个数组合并为一个数组*/
      $goodfoodArray = array_merge($fruitArray, $vegArray);
      /* 显示每个元素及其序号*/
      while (list($key,$value) = each($goodfoodArray)) {
      echo "$key : $value
    ";
      }
      ?>[/code]

      运行上面的脚本将得到下面的结果:

    [code]  0 : apple
      1 : orange
      2 : banana
      3 : kiwi
      4 : pear
      5 : carrot
      6 : green beans
      7 : asparagus
      8 : artichoke
      9 : corn[/code]