⑴ php中如何實現字元串翻轉
先說說一下吧:
strrev:這是php原生的翻轉函數,但是只能針對於單位元組字元組成的字元串進行翻轉,比如:abc123,可以使用它翻轉成123cba;
對於多位元組反轉:strrev是不支持的,很明顯,我認為這塵跡和是官方設計上的一種不合理,看官網也沒有任何說明;那麼我們怎麼自己實現包含多位元組的字元串翻轉呢?州激我收集了兩種辦法:
一是使用正則//u這個正則匹配所有unicode字元串,二派盯是使用mb_substr函數
方法一:
$str="學海無涯abc你好世界123";
print_r(join(
"",
array_reverse(preg_split("//u",$str))
));
方法二:
$str = "學海無涯abc你好世界123";
$len = mb_strlen($str,"utf8");
$restr = "";
for($i=$len-1;$i>=0;$i--){
$restr .=mb_substr($str,$i,1,"utf8");
}
echo $restr ;
附:如果以上程序不能允許,自己手敲一遍,這個編輯器會有些特殊字元導致程序沒法允許。。
⑵ php如何讓一個有健值的數組倒序排列(每個元素的健值不變)
<?php
function array_reverse_order($array){
$array_key = array_keys($array);
$array_value = array_values($array);
$array_return = array();
for($i=1, $size_of_array=sizeof($array_key);$i<=$size_of_array;$i++){
$array_return[$array_key[$size_of_array-$i]] = $array_value[$size_of_array-$i];
}
return $array_return;
}
$a = array(11=>'jiao', 22=>'yong', 33=>'gang');
$b = array_reverse_order($a);
print_r($b);
?>
⑶ php for 倒序輸出
不知道你要干什麼,但是遍歷數組foreach是更好的選擇,倒敘的話
array_reverse方法可以實現
⑷ php 從某一位置倒序查找字元串
$v='<ahref="nihao.html">jojasdfasd,asdfj<imgsrc="555.jpg"';
echostrrpos(substr($v,0,15),'"');
⑸ php for循環如何讓i倒序
for($i=5;$i>0;$i--){
if($i<0){break;}
echo$i;
}
結果為:
5
4
3
2
1
⑹ 如何 寫一個PHP把任意4位數倒序輸出
$a = '1234';
$length = str_split($a,1);
for($i=count($length);$i>0;$i--){
echo $length[$i-1]."\n";
}
結果:
4
3
2
1
$a = '1234';
$str=implode(array_reverse(str_split($a,1)));
結果:4321(字元串類型的)
⑺ 將一個數據文件數據內容按位元組倒置成一個新的文件(php,java,C,C++.....都行,最好是PHP)
用C語言寫了一個,已用譽攜txt文件測試過洞兄。如有疑問,可追問;如果滿意,請採納。
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp1,*fp2;
char ch;
long len=0;
if((fp1=fopen("txt1.txt","r"))==NULL)//txt1.txt文件是原始數據文件,你可以自己定義
{
printf("cannot open this file!\n");
exit(0);
}
fp2=fopen("txt2.txt","w+"納虛襲);//txt2.txt文件是原始數據文件,你可以自己定義
fseek(fp1,0,SEEK_END);//將txt1.txt文件的讀寫位置定位到文件末尾
len=ftell(fp1)-1;//得到文件txt1.txt長度
fseek(fp1,len,SEEK_SET);//定位到最後一個字元
ch =fgetc(fp1);//獲得最後一個字元
while((len--)>=0)//倒序
{
putc(ch,fp2);//輸出到文件txt2.txt
fseek(fp1,len,SEEK_SET);//文件txt1.txt讀寫位置前移
ch =fgetc(fp1);//獲得字元
}
fclose(fp1);//關閉兩個文件
fclose(fp1);
return 0;
}