时间: 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()