自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

解讀PHP函數(shù)strrev()以外的三種逆序排列方法

開(kāi)發(fā) 后端
PHP函數(shù)strrev()可以幫助我們實(shí)現(xiàn)數(shù)組的逆序排列,在這之外我們還可以用到二分法、循環(huán)法、遞歸法等三種方法來(lái)實(shí)現(xiàn)這以功能。

我們?cè)谶\(yùn)用PHP語(yǔ)言進(jìn)行實(shí)際代碼操作時(shí),其內(nèi)置函數(shù)對(duì)我們的編碼程序起到了很大的作用。今天我們就為大家具體講解了有關(guān)PHP函數(shù)strrev()的具體用法。#t#

關(guān)于字符串的逆序排列,PHP函數(shù)strrev()的測(cè)試代碼如下:

  1. header('Content-type: text/html; charset=utf-8');  
  2. $str = implode('', range(9, 0));  
  3. print '< p><strong>Before reversed: </strong>'.$str.'< /p>';  
  4. print '< p>< strong>After reversed: < /strong>'.strrev($str).'< /p>';  
  5. /*  
  6. 輸出如下:  
  7. Before reversed: 9876543210  
  8. After reversed: 0123456789  
  9. */ 


如果不用內(nèi)置的PHP函數(shù)strrev(),又該如何實(shí)現(xiàn)呢?這里試驗(yàn)了3種方法(二分法、循環(huán)法、遞歸法),但沒(méi)有進(jìn)行性能測(cè)試。

1、二分法

  1. /**  
  2. * 二分法實(shí)現(xiàn)字符串逆序排列  
  3. * @param string $str 源字符串  
  4. * @return string 返回逆序后的字符串  
  5. */  
  6. function reverse($str='') {  
  7. $len = strlen($str);//不能使用count或sizeof  
  8. $mid = floor($len/2);  
  9. for ($i=0; $i<$mid; $i++) {  
  10. $temp = $str[$i];  
  11. $str[$i] = $str[$len-$i-1];  
  12. $str[$len-$i-1] = $temp;  
  13. }  
  14. return $str;  


2、循環(huán)法

  1. /**  
  2. * 循環(huán)實(shí)現(xiàn)對(duì)字符串的逆序排列(效率比二分法低)  
  3. * @param string $str 源字符串  
  4. * @return string 返回逆序后的字符串  
  5. */  
  6. function reverse($str='') {  
  7. $result = '';  
  8. for ($i=1; $i<=strlen($str); $i++) {  
  9. $result .substr($str, -$i, 1);  
  10. }  
  11. return $result;  
  12. }  

3、遞歸法

 

  1. /**  
  2. * 遞歸實(shí)現(xiàn)對(duì)字符串的逆序排列(效率低)  
  3. * @param string $str 源字符串  
  4. * @return string 返回逆序后的字符串  
  5. */  
  6. function reverse($str='') {  
  7. static $result = '';  
  8. /* 用堆棧來(lái)理解遞歸調(diào)用 */  
  9. if (strlen($str) > 0) {  
  10. reverse(substr($str, 1));  
  11. $result .substr($str, 0, 1);//此句必須放在上一語(yǔ)句之后  
  12. }  
  13. return $result;  
  14. }  

以上就是PHP函數(shù)strrev()的具體用法,以及另外三種逆序排列的實(shí)現(xiàn)方法。

責(zé)任編輯:曹凱 來(lái)源: longlinfeng.com
相關(guān)推薦

2010-02-03 15:46:15

C++函數(shù)傳遞

2017-04-11 15:15:20

CentOSPHP拓展安裝

2015-10-13 15:05:09

BYOD自帶設(shè)備移動(dòng)辦公

2015-09-25 11:08:44

移動(dòng)辦公BYOD

2010-09-02 10:02:17

PHP

2012-08-07 10:02:06

JSP

2009-12-21 13:37:43

WCF消息交換

2009-12-04 15:42:57

PHP文件緩存

2019-08-30 17:24:41

microservic微服務(wù)

2023-12-25 14:44:52

Java數(shù)組

2009-07-08 12:56:32

編寫Servlet

2009-11-26 19:05:04

PHP函數(shù)explod

2022-05-30 07:07:35

Java監(jiān)聽(tīng)文件Java 8

2015-01-05 14:51:45

彈性存He云存儲(chǔ)架構(gòu)UnitedStack

2022-11-30 15:15:48

2009-05-07 15:02:42

OracleJoin查詢

2009-12-09 09:48:38

solaris靜態(tài)路由

2011-06-10 10:43:12

Ubuntu應(yīng)用安裝

2022-03-04 14:52:27

云計(jì)算開(kāi)源

2009-06-23 10:45:18

Hibernate支持
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)