楼主: keaide

PHP4手册:函数库及函数

[复制链接]
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
11#
 楼主| 发表于 2006-8-5 22:25 | 只看该作者
阵列处理函式库

--------------------------------------------------------------------------------
阵列处理函式库  
--------------------------------------------------------------------------------
  


本函式库共有 23 个函式
array: 建立一个新的阵列。  
array_walk: 让使用者自订函数能处理阵列中的每一个元素。  
arsort: 将阵列的值由大到小排序。  
asort: 将阵列的值由小到大排序。  
count: 计算变数或阵列中的元素个数。  
current: 传回阵列中目前的元素。  
each: 传回阵列中下一个元素的索引及值。  
end: 将阵列的内部指标指到最后的元素。  
key: 取得阵列中的索引资料。  
ksort: 将阵列的元素依索引排序。  
list: 列出阵列中元素的值。  
next: 将阵列的内部指标向后移动。  
pos: 传回阵列目前的元素。  
prev: 将阵列的内部指标往前移动。  
range: 建立一个整数范围的阵列。  
reset: 将阵列的指标指到阵列第一个元素。  
rsort: 将阵列的值由大到小排序。  
shuffle: 将阵列的顺序弄混。  
sizeof: 获知阵列的大小。  
sort: 将阵列排序。  
uasort: 将阵列依使用者自定的函式排序。  
uksort: 将阵列的索引依使用者自定的函式排序。  
usort: 将阵列的值依使用者自定的函式排序。

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
12#
 楼主| 发表于 2006-8-5 22:26 | 只看该作者
--------------------------------------------------------------------------------
函式:array()  
--------------------------------------------------------------------------------
  


阵列处理函式库


array
建立一个新的阵列。

语法: array array(...);

传回值: 阵列

函式种类: 资料处理


  
  
内容说明  


传回的参数是阵列形态。参数可以是带有 => 运算子的索引。array() 其实不是一个正规的函式,它主要是要用来表示阵列。


  
  
使用范例  


下面范例用显示如何建立一个二维阵列,如何指定联合阵列的键值,及如何略过和继续阵列中的数字索引。

$fruits = array(
    "fruits"  => array("a"=>"orange","b"=>"banana","c"=>"apple",
    "numbers" => array(1, 2, 3, 4, 5, 6),
    "holes"   => array("first", 5 => "second", "third"
);  

  
  
参考  


list()   


--------------------------------------------------------------------------------
函式:array_walk()  
--------------------------------------------------------------------------------
  


阵列处理函式库


array_walk
让使用者自订函数能处理阵列中的每一个元素。

语法: int array_walk(array arr, string func);

传回值: 整数

函式种类: 资料处理


  
  
内容说明  


此函式使每个阵列元素 arr 依序与函式名称 func 相对应。元素传送到函式 func 的第一个参数,若参数超过一个,则每次都会有警告讯息。要处理警告讯息,可在本函式前面加上 '@' 字元 (变成 @array_walk);或是使用 error_reporting 函式。

注意: 使用者自订函式 func 真的会将阵列元素 arr 依序代入,所以任何对元素所做的改变都会影响到阵列本身。


  
  
使用范例  


$fruits = array("d"=>"lemon","a"=>"orange","b"=>"banana","c"=>"apple";

function test_alter( $item1 ) {
   $item1 = 'bogus';
}

function test_print( $item2 ) {
   echo "$item2
\n";
}

array_walk( $fruits, 'test_print' );
array_walk( $fruits, 'test_alter' );
array_walk( $fruits, 'test_print' );
?>  

  
  
参考  


each()  list()

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
13#
 楼主| 发表于 2006-8-5 22:27 | 只看该作者
--------------------------------------------------------------------------------
函式:arsort()  
--------------------------------------------------------------------------------
  


阵列处理函式库


arsort
将阵列的值由大到小排序。

语法: void arsort(array array);

传回值: 无

函式种类: 资料处理


  
  
内容说明  


这个函式将阵列的值重新排序,由大至小排列。阵列的索引亦跟着值的顺序而变动。当您在程式中需要重新整理阵列值的顺序时,就可以使用这个函式。


  
  
使用范例  


底下的范例传回的结果为
fruits[a] = orange
fruits[d] = lemon
fruits = banana
fruits[c] = apple。
我们可以看到水果名 (阵列值) 已按英文字母的顺序由 z 往 a 重新排序,而索引亦跟着值变动。

$fruits = array("d"=>"lemon","a"=>"orange","b"=>"banana","c"=>"apple";
arsort($fruits);
for(reset($fruits); $key = key($fruits); next($fruits)) {
    echo "fruits[$key] = ".$fruits[$key]."\n";
}
?>  



  
  
参考  


asort()  rsort()  ksort()  sort()

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
14#
 楼主| 发表于 2006-8-5 22:27 | 只看该作者
--------------------------------------------------------------------------------
函式:asort()  
--------------------------------------------------------------------------------
  


阵列处理函式库


asort
将阵列的值由小到大排序。

语法: void asort(array array);

传回值: 无

函式种类: 资料处理


  
  
内容说明  


这个函式将阵列的值重新排序,由小至大排列。阵列的索引亦跟着值的顺序而变动。当您在程式中需要重新整理阵列值的顺序时,就可以使用这个函式。


  
  
使用范例  


底下的范例传回的结果为
fruits[c] = apple
fruits = banana
fruits[d] = lemon
fruits[a] = orange
我们可以看到水果名 (阵列值) 已按英
文字母的顺序由 a 往 z 排序,而索引亦跟着值变动。

$fruits = array("d"=>"lemon","a"=>"orange","b"=>"banana","c"=>"apple";
asort($fruits);
for(reset($fruits); $key = key($fruits); next($fruits)) {
    echo "fruits[$key] = ".$fruits[$key]."\n";
}
?>  



  
  
参考  


arsort()  rsort()  ksort()  sort()

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
15#
 楼主| 发表于 2006-8-5 22:27 | 只看该作者
--------------------------------------------------------------------------------
函式:count()  
--------------------------------------------------------------------------------
  


阵列处理函式库


count
计算变数或阵列中的元素个数。

语法: int count(mixed var);

传回值: 整数

函式种类: 资料处理


  
  
内容说明  


这个函式用来计算阵列的元素个数 (亦可将变数代入,只不过传回的整数将是 1)。变数还没有设定时,传回值为 0。变数若不是阵列,传回值为 1。


  
  
参考  


sizeof()  isset()  is_array()   

  

--------------------------------------------------------------------------------
函式:current()  
--------------------------------------------------------------------------------
  


阵列处理函式库


current
传回阵列中目前的元素。

语法: mixed current(array array);

传回值: 混合型态资料

函式种类: 资料处理


  
  
内容说明  


说明: 每一个阵列变数都有一个内部指标,指到它的每一个元素。此外,为了交互参考,阵列有份所有元素的双向链结表。阵列的内部指标指到原先插入的元素上,直到程式执行到有更动阵列指标的函式。函式 current() 简单地传回阵列元素中目前指到的阵列内部指标。它不会改变指标的值,若阵列指标指到内部指标表外,则传回 false 的值。

注意: 若阵列中包含空的元素 (0 或者 "" 空字串),则本函式会传回 false 值。要是目前元素是个零值的空元素或者是超出阵列指标,结果当然是未定的 false 值。遇到这种情形,可以使用 each() 函式会更适合。


  
  
参考  


end()  next()  prev()  reset()

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
16#
 楼主| 发表于 2006-8-5 22:28 | 只看该作者
--------------------------------------------------------------------------------
  

--------------------------------------------------------------------------------
函式:each()  
--------------------------------------------------------------------------------
  


阵列处理函式库


each
传回阵列中下一个元素的索引及值。

语法: array each(array array);

传回值: 阵列

函式种类: 资料处理


  
  
内容说明  


传回阵列为目前阵列指标的 索引/值 对。传回的阵列有四个元素,依序为 0, 1, 索引, 及值。前述的 0 与 索引 为阵列的索引,1 与 值则为阵列元素的值。


  
  
使用范例  


范例一:
$foo = array( "bob", "fred", "jussi", "jouni" );
$bar = each( $foo );
?>
上面的例子,传回阵列 $bar 的 索引/值 为
0 => 0
1 => 'bob'
key => 0
value => 'bob'

范例二:
$foo = array( "Robert" => "Bob", "Seppo" => "Sepi" );
$bar = each( $foo );
?>
这个的例子,传回阵列 $bar 的 索引/值 为
0 => 'Robert'
1 => 'Bob'
key => 'Robert'
value => 'Bob'

范例三:   
each() 函式最典型的例子是拿来与 list() 函式合用,如下例的 $HTTP_POST_VARS 变数。
echo "POST 所送出的值为:
";
while ( list( $key, $val ) = each( $HTTP_POST_VARS ) ) {
  echo "$key => $val
";
}
?>  

  
  
参考  


current()  key()  list()  next()  prev()  reset()

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
17#
 楼主| 发表于 2006-8-5 22:28 | 只看该作者
--------------------------------------------------------------------------------
函式:end()  
--------------------------------------------------------------------------------
  


阵列处理函式库


end
将阵列的内部指标指到最后的元素。

语法: end(array array);

传回值: 无

函式种类: 资料处理


  
  
内容说明  


本函式会改变阵列的内部指标,它将指标指到最后一个元素上。


  
  
参考  


current()  each()  next()  reset()   
  

--------------------------------------------------------------------------------
函式:key()  
--------------------------------------------------------------------------------
  


阵列处理函式库


key
取得阵列中的索引资料。

语法: mixed key(array array);

传回值: 混合型态资料

函式种类: 资料处理


  
  
内容说明  


本函式从目前阵列的指标,传回其索引。


  
  
参考  


current()  next()

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
18#
 楼主| 发表于 2006-8-5 22:29 | 只看该作者
--------------------------------------------------------------------------------
函式:ksort()  
--------------------------------------------------------------------------------
  


阵列处理函式库


ksort
将阵列的元素依索引排序。

语法: void ksort(array array);

传回值: 无

函式种类: 资料处理


  
  
内容说明  


本函式将阵列中的元素依索引排序,排序后的索引和值仍然对应。


  
  
使用范例  


$fruits = array("d"=>"lemon","a"=>"orange","b"=>"banana","c"=>"apple";
ksort($fruits);
for(reset($fruits); $key = key($fruits); next($fruits)) {
  echo "fruits[$key] = ".$fruits[$key]."\n";
}
?>

上面的例子,传回的资料为
fruits[a] = orange
fruits = banana
fruits[c] = apple
fruits[d] = lemon




  
  
参考  


arsort()  asort()  sort()  rsort()   
  

--------------------------------------------------------------------------------
函式:list()  
--------------------------------------------------------------------------------
  


阵列处理函式库


list
列出阵列中元素的值。

语法: void list(...);

传回值: 无

函式种类: 资料处理


  
  
内容说明  


和 array 函式一样,不算是正规的函式。list() 函式用在列出所有阵列中的数值。


  
  
使用范例  


下面的范例列出从 MySQL 资料库传回的阵列资料。

  
   员工姓名
   薪资
  


$result = mysql($conn, "SELECT id, name, salary FROM employees";
while (list($id, $name, $salary) = mysql_fetch_row($result)) {
    print("  \n".
          "   $name \n".
          "   $salary \n".
          "  
\n";
}

?>


  
  
参考  


each()  array()

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
19#
 楼主| 发表于 2006-8-5 22:29 | 只看该作者
--------------------------------------------------------------------------------
函式:next()  
--------------------------------------------------------------------------------
  


阵列处理函式库


next
将阵列的内部指标向后移动。

语法: mixed next(array array);

传回值: 混合型态资料

函式种类: 资料处理


  
  
内容说明  


这个函式传回阵列下个元素的内部指标,若没有下个元素,则传回 false 值。当然,若是一个空的阵列,它也传回 false 值。要正确地处理可能是空的阵列,可以使用 each() 函式。此函式看起来像 current() 函式,不同地方在于本函式使指标往后指到下一个元素,并传回新的指标处的元素值,意即指标后移,并传回下一个元素值。


  
  
参考  


current()  end()  prev()  reset()   


--------------------------------------------------------------------------------
函式os()  
--------------------------------------------------------------------------------
  


阵列处理函式库


pos
传回阵列目前的元素。

语法: mixed pos(array array);

传回值: 混合型态资料

函式种类: 资料处理


  
  
内容说明  


此函式其实就是 current() 函式。


  
  
参考  


end()  next()  prev()  reset()

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
20#
 楼主| 发表于 2006-8-5 22:30 | 只看该作者
--------------------------------------------------------------------------------
函式rev()  
--------------------------------------------------------------------------------
  


阵列处理函式库


prev
将阵列的内部指标往前移动。

语法: mixed prev(array array);

传回值: 混合型态资料

函式种类: 资料处理


  
  
内容说明  


这个函式传回阵列前一个元素的内部指标,若没有前一个元素,则传回 false 值。当然,若是一个空的阵列,它也传回 false 值。要正确地处理可能是空的阵列,可以使用 each() 函式。此函式有点像 next() 函式,只是 prev() 函式是将指标往前移,而 next() 函式是将指标往后移。


  
  
参考  


current()  end()  next()  reset()   
  

--------------------------------------------------------------------------------
函式:range()  
--------------------------------------------------------------------------------
  


阵列处理函式库


range
建立一个整数范围的阵列。

语法: array range(int low, int high);

传回值: 阵列

函式种类: 资料处理


  
  
内容说明  


此函式建立一个由小到大的连续整数阵列。在 shuffle() 函式有使用范例。


  
  
参考  


shuffle()

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表