大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> PHP专区 -> PHP4手册:函数库及函数(三) 阵列处理函式库

PHP4手册:函数库及函数(三) 阵列处理函式库

时间: 2021-07-31 作者:daque

-------------------------------------------------------------------------------- 阵列处置函式库 -------------------------------------------------------------------------------- 本函式库公有 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: 将阵列的值依运用者自定的函式排序。 -------------------------------------------------------------------------------- 函式: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()  -------------------------------------------------------------------------------- 函式:arsort() -------------------------------------------------------------------------------- 阵列处置函式库arsort将阵列的值由大到小排序。语法: void arsort(array array);传回值: 无函式品种: 材料处置  实质证明 这个函式将阵列的值从新排序,由大至小陈设。阵列的索引亦随着值的程序而变化。当您在程式中须要从新整治阵列值的程序时,就不妨运用这个函式。  运用典型 下面的典型传回的截止为fruits[a] = orangefruits[d] = lemonfruits[b] = bananafruits[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()  -------------------------------------------------------------------------------- 函式:asort() -------------------------------------------------------------------------------- 阵列处置函式库asort将阵列的值由小到大排序。语法: void asort(array array);传回值: 无函式品种: 材料处置  实质证明 这个函式将阵列的值从新排序,由小至大陈设。阵列的索引亦随着值的程序而变化。当您在程式中须要从新整治阵列值的程序时,就不妨运用这个函式。  运用典型 下面的典型传回的截止为fruits[c] = applefruits[b] = bananafruits[d] = lemonfruits[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()  -------------------------------------------------------------------------------- 函式: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()  -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- 函式:each() -------------------------------------------------------------------------------- 阵列处置函式库each传回阵列中下一个元素的索引及值。语法: array each(array array);传回值: 阵列函式品种: 材料处置  实质证明 传回阵名列暂时阵列目标的 索引/值 对。传回的阵列有四个元素,依序为 0, 1, 索引, 及值。前述的 0 与 索引 为阵列的索引,1 与 值则为阵列元素的值。  运用典型 典型一:$foo = array( "bob", "fred", "jussi", "jouni" );$bar = each( $foo );?>上头的例子,传回阵列 $bar 的 索引/值 为0 => 01 => 'bob'key => 0value => '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()  -------------------------------------------------------------------------------- 函式:end() -------------------------------------------------------------------------------- 阵列处置函式库end将阵列的里面目标指到结果的元素。语法: end(array array);传回值: 无函式品种: 材料处置  实质证明 本函式会变换阵列的里面目标,它将目标指到结果一个元素上。  参考 current()  each()  next()  reset()   -------------------------------------------------------------------------------- 函式:key() -------------------------------------------------------------------------------- 阵列处置函式库key博得阵列中的索引材料。语法: mixed key(array array);传回值: 搀和型态材料函式品种: 材料处置  实质证明 本函式从暂时阵列的目标,传回其索引。  参考 current()  next()   -------------------------------------------------------------------------------- 函式: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] = orangefruits[b] = bananafruits[c] = applefruits[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()  -------------------------------------------------------------------------------- 函式:next() -------------------------------------------------------------------------------- 阵列处置函式库next将阵列的里面目标向后挪动。语法: mixed next(array array);传回值: 搀和型态材料函式品种: 材料处置  实质证明 这个函式传回阵列下个元素的里面目标,若没有下个元素,则传回 false 值。固然,假如一个空的阵列,它也传回 false 值。要精确地处置大概是空的阵列,不妨运用 each() 函式。此函式看上去像 current() 函式,各别场合在乎本函式使目标此后指到下一个元素,并传回新的目标处的元素值,意即目标西移,并传回下一个元素值。  参考 current()  end()  prev()  reset()  -------------------------------------------------------------------------------- 函式:pos() -------------------------------------------------------------------------------- 阵列处置函式库pos传回阵列暂时的元素。语法: mixed pos(array array);传回值: 搀和型态材料函式品种: 材料处置  实质证明 此函式本来即是 current() 函式。  参考 end()  next()  prev()  reset()   -------------------------------------------------------------------------------- 函式:prev() -------------------------------------------------------------------------------- 阵列处置函式库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()   -------------------------------------------------------------------------------- 函式:reset() -------------------------------------------------------------------------------- 阵列处置函式库reset将阵列的目标指到阵列第一个元素。语法: mixed reset(array array);传回值: 搀和型态材料函式品种: 材料处置  实质证明 本函式将阵列的目标重设,将目标改指到阵列的第一个元素。传回值的实质也是阵列的第一个元素。  运用典型 本领:  kk@shonline.de 指出 (30-jul-1998),当阵列的材料不够宁静时,运用 reset() 会有劝告消息。最常爆发的功夫是处置 html 表单(form)的输出材料时,若运用者输出的材料不够充份,或运用者蓄意增加和删除输出 (input) 栏位,就有大概会有劝告消息。用 @reset() 的办法可使劝告消息不展示 (在 reset() 前加 @),然而这不过自欺欺人的办法;要斧底抽薪的本领是运用 if (isset()) 的办法 (拜见 4.48.14 isset() 函式),如次例if (isset($form_array)) {  reset($form_array);  while (list($k, $v) = each($form_array)) {    do_something($k, $v);  }}?>   参考 current()  each()  next()  prev()  -------------------------------------------------------------------------------- 函式:rsort() -------------------------------------------------------------------------------- 阵列处置函式库rsort将阵列的值由大到小排序。语法: void rsort(array array);传回值: 无函式品种: 材料处置  实质证明 本函式将阵列依由大到小的办法重排。  运用典型 $fruits = array("lemon","orange","banana","apple");rsort($fruits);for(reset($fruits); list($key,$value) = each($fruits); ) {    echo "fruits[$key] = ".$value."\n";}?>处置后的截止为fruits[0] = orangefruits[1] = lemonfruits[2] = bananafruits[3] = apple  参考 arsort()  asort()  ksort()  sort()  usort()  -------------------------------------------------------------------------------- 函式:shuffle() -------------------------------------------------------------------------------- 阵列处置函式库shuffle将阵列的程序弄混。语法: void shuffle(array array);传回值: 无函式品种: 材料处置  实质证明 本函式将阵列以随机的办法使十足元素从新乱排。  运用典型 $numbers = range(1,20);srand(time());shuffle($numbers);while (list(,$number) = each($numbers)) {  echo "$number ";}?>提防:  ccunning@math.ohio-state.edu 指出 (31-may-1999),在 solaris 上因为受了 libc 函式馆的感化,会使本函式展示题目。暂时处置的办法如底下的例子。(注: 大概之后新的 php 本子会矫正这个题目。)function myshuffle($array) {   mt_srand((double) microtime()*1000000);   $num = count($array);   for ($i=0; $i      $n = mt_rand($i+1,$num);      $temp = $array[$n];      $array[$n] = $array[$i];      $array[$i] = $temp;   }}$array = array(1,2,3,4,5,6,7,8,9,10);myshuffle(&$array);while (list(,$var)=each($array)) {   echo $var . " ";}?>  参考 arsort()  asort()  ksort()  rsort()  sort()  usort()  -------------------------------------------------------------------------------- 函式:sizeof() -------------------------------------------------------------------------------- 阵列处置函式库sizeof获知阵列的巨细。语法: int sizeof(array array);传回值: 平头函式品种: 材料处置  实质证明 本函式以平头型态传回阵列的元素个数。  参考 count()   -------------------------------------------------------------------------------- 函式:sort() -------------------------------------------------------------------------------- 阵列处置函式库sort将阵列排序。语法: void sort(array array);传回值: 无函式品种: 材料处置  实质证明 本函式将阵列依由小到大的办法重排。  运用典型 $fruits = array("lemon","orange","banana","apple");sort($fruits);for(reset($fruits); list($key,$value) = each($fruits); ) {    echo "fruits[$key] = ".$value."\n";}?>传回的截止为fruits[0] = applefruits[1] = bananafruits[2] = lemonfruits[3] = orange   参考 arsort()  asort()  ksort()  rsort()  usort()  -------------------------------------------------------------------------------- 函式:uasort() -------------------------------------------------------------------------------- 阵列处置函式库uasort将阵列依运用者自定的函式排序。语法: void uasort(array array, function cmp_function);传回值: 无函式品种: 材料处置  实质证明 本函式将阵列依运用者自定的办法重排,固然元素的索引和值仍旧维持对应的联系。当您感触须要自行安排排序的办法时,不妨先自订处置函式,再运用本函式将阵列值排序。  参考 arsort()  asort()  ksort()  rsort()  sort()  uksort()  -------------------------------------------------------------------------------- 函式:uksort() -------------------------------------------------------------------------------- 阵列处置函式库uksort将阵列的索引依运用者自定的函式排序。语法: void uksort(array array, function cmp_function);传回值: 无函式品种: 材料处置  实质证明 本函式将阵列的索引依运用者自定的办法重排,cmp_function 即运用者自行开拓的函式。  运用典型 function mycompare($a, $b) {    if ($a == $b) return 0;    return ($a > $b) ? -1 : 1;}$a = array(4 => "four", 3 => "three", 20 => "twenty", 10 => "ten");uksort($a, mycompare);while(list($key, $value) = each($a)) {    echo "$key: $value\n";}?>上头的程式传回材料为20: twenty10: ten4: four3: three   参考 arsort()  asort()  ksort()  rsort()  sort()  uasort()  -------------------------------------------------------------------------------- 函式:usort() -------------------------------------------------------------------------------- 阵列处置函式库usort将阵列的值依运用者自定的函式排序。语法: void usort(array array, function cmp_function);传回值: 无函式品种: 材料处置  实质证明 本函式将阵列的值依运用者自定的办法重排。若程式中须要运用特出的排序办法,则不妨运用这个函式。  运用典型 function cmp($a,$b) {    if ($a == $b) return 0;    return ($a > $b) ? -1 : 1;}$a = array(3,2,5,6,1);usort($a, cmp);while(list($key,$value) = each($a)) {    echo "$key: $value\n";}?>此例的传回值为0: 61: 52: 33: 24: 1   参考 arsort()  asort()  ksort()  rsort()  sort()  

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.