⑴ 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;
}