楼主: 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
21#
 楼主| 发表于 2006-8-5 22:31 | 只看该作者
--------------------------------------------------------------------------------
函式: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] = orange
fruits[1] = lemon
fruits[2] = banana
fruits[3] = apple




  
  
参考  


arsort()  asort()  ksort()  sort()  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
22#
 楼主| 发表于 2006-8-5 22:31 | 只看该作者
--------------------------------------------------------------------------------
函式: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<$num-1; $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()

使用道具 举报

回复
论坛徽章:
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
23#
 楼主| 发表于 2006-8-5 22:32 | 只看该作者
--------------------------------------------------------------------------------
函式: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] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange  



  
  
参考  


arsort()  asort()  ksort()  rsort()  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
24#
 楼主| 发表于 2006-8-5 22:32 | 只看该作者
--------------------------------------------------------------------------------
函式: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: twenty
10: ten
4: four
3: three  

  
  
参考  


arsort()  asort()  ksort()  rsort()  sort()  uasort()

使用道具 举报

回复
论坛徽章:
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
25#
 楼主| 发表于 2006-8-5 22:33 | 只看该作者
--------------------------------------------------------------------------------
函式: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: 6
1: 5
2: 3
3: 2
4: 1  

  
  
参考  


arsort()  asort()  ksort()  rsort()  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
26#
 楼主| 发表于 2006-8-5 22:33 | 只看该作者
拼字检查函式库

--------------------------------------------------------------------------------
拼字检查函式库  
--------------------------------------------------------------------------------
  


本函式库共有 4 个函式
在使用这个函式前,需要先到 http://metalab.unc.edu/kevina/aspell 取回所需的拼字检查函式馆 aspell library。   


aspell_new: 载入一个新的字典。  
aspell_check: 检查一个单字。  
aspell_check-raw: 检查一个单字,即使拼错也不改变或修正。  
aspell_suggest: 检查一个单字,并提供拼字建议。  

--------------------------------------------------------------------------------
函式:aspell_new()  
--------------------------------------------------------------------------------
  


拼字检查函式库


aspell_new
载入一个新的字典。

语法: int aspell_new(string master, string personal);

传回值: 整数

函式种类: 资料处理


  
  
内容说明  


本函式载入一个新的字典,并赋与一个新的身份值 (整数),以供程式中使用。


  
  
使用范例  


$aspell_link=aspell_new("english";  



--------------------------------------------------------------------------------

使用道具 举报

回复
论坛徽章:
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
27#
 楼主| 发表于 2006-8-5 22:34 | 只看该作者
--------------------------------------------------------------------------------
函式:aspell_check()  
--------------------------------------------------------------------------------
  


拼字检查函式库


aspell_check
检查一个单字。

语法: boolean aspell_check(int dictionary_link, string word);

传回值: 布林值

函式种类: 资料处理


  
  
内容说明  


本函式检查单字的拼字。若拼字正确则传回 true,不正确则传回 false。


  
  
使用范例  


$aspell_link=aspell_new("english";
if (aspell_check($aspell_link,"testt") {
    echo "This is a valid spelling";
} else {
    echo "Sorry, wrong spelling";
}


  

--------------------------------------------------------------------------------
函式:aspell_check-raw()  
--------------------------------------------------------------------------------
  


拼字检查函式库


aspell_check-raw
检查一个单字,即使拼错也不改变或修正。

语法: boolean aspell_check_raw(int dictionary_link, string word);

传回值: 布林值

函式种类: 资料处理


  
  
内容说明  


本函式检查单字的拼字。若拼字正确则传回 true,不正确则传回 false。本函式不会改变或者修正使用者的拼字。


  
  
使用范例  


$aspell_link=aspell_new("english";
if (aspell_check_raw($aspell_link,"testt") {
    echo "This is a valid spelling";
} else {
    echo "Sorry, wrong spelling";
}

使用道具 举报

回复
论坛徽章:
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
28#
 楼主| 发表于 2006-8-5 22:35 | 只看该作者
--------------------------------------------------------------------------------
函式:aspell_suggest()  
--------------------------------------------------------------------------------
  


拼字检查函式库


aspell_suggest
检查一个单字,并提供拼字建议。

语法: array aspell_suggest(int dictionary_link, string word);

传回值: 阵列

函式种类: 资料处理


  
  
内容说明  


本函式检查单字的拼字。并给予可能的拼法及正确的建议,以阵列型态将结果传回。


  
  
使用范例  


$aspell_link=aspell_new("english";

if (!aspell_check($aspell_link,"testt") {
    $suggestions=aspell_suggest($aspell_link,"testt";

    for($i=0; $i < count($suggestions); $i++) {
       echo "Possible spelling: " . $suggestions[$i] . "
";
    }
}
?>

使用道具 举报

回复
论坛徽章:
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
29#
 楼主| 发表于 2006-8-5 22:36 | 只看该作者
BC 高精确度函式库

本函式库共有 9 个函式
要使用 BC 这个函式库,要在编译 PHP 程式时加入 --enable-bcmath 的选项。   


bcadd: 将二个高精确度数字相加。  
bccomp: 比较二个高精确度数字。  
bcdiv: 将二个高精确度数字相除。  
bcmod: 取得高精确度数字的余数。  
bcmul: 将二个高精确度数字相乘。  
bcpow: 求一高精确度数字次方值。  
bcscale: 设定程式中所有 BC 函式库的内定小数点位数。  
bcsqrt: 求一高精确度数字的平方根。  
bcsub: 将二个高精确度数字相减。  

--------------------------------------------------------------------------------
函式:bcadd()  
--------------------------------------------------------------------------------
  


BC 高精确度函式库


bcadd
将二个高精确度数字相加。

语法: string bcadd(string left operand, string right operand, int [scale]);

传回值: 字串

函式种类: 数学运算


  
  
内容说明  


此函式将二个高精确度的数字相加,传入二个字串,结果亦以字串传回。scale 是一个可有可无的选项,表示传回值的小数点后所需的位数。


  
  
参考  


bcsub()   

--------------------------------------------------------------------------------
函式:bccomp()  
--------------------------------------------------------------------------------
  


BC 高精确度函式库


bccomp
比较二个高精确度数字。

语法: int bccomp(string left operand, string right operand, int [scale]);

传回值: 整数

函式种类: 数学运算


  
  
内容说明  


此函式比较二个高精确度的数字。输入二个字串,若二个字串一样大则传回 0;若左边的数字字串 (left operand) 比右边 (right operand) 的大则传回 +1;若左边的数字字串比右边的小则传回 -1。scale 是一个可有可无的选项,表示传回值的小数点后所需的位数。

使用道具 举报

回复
论坛徽章:
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
30#
 楼主| 发表于 2006-8-5 22:38 | 只看该作者
--------------------------------------------------------------------------------
函式:bcdiv()  
--------------------------------------------------------------------------------
  


BC 高精确度函式库


bcdiv
将二个高精确度数字相除。

语法: string bcdiv(string left operand, string right operand, int [scale]);

传回值: 字串

函式种类: 数学运算


  
  
内容说明  


此函式将二个高精确度的数字相除,传入二个字串,以左边的数字字串 (left operand) 除以右边的 (right operand) 数字字串。结果亦以字串传回。scale 是一个可有可无的选项,表示传回值的小数点后所需的位数。


  
  
参考  


bcmul()   


--------------------------------------------------------------------------------
函式:bcmod()  
--------------------------------------------------------------------------------
  


BC 高精确度函式库


bcmod
取得高精确度数字的余数。

语法: string bcmod(string left operand, string modulus);

传回值: 字串

函式种类: 数学运算


  
  
内容说明  


得到 left operand 被 modulus 除后的余数字串。


  
  
参考  


bcdiv()

使用道具 举报

回复

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

本版积分规则 发表回复

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