php001
『壹』 php 求數組中001最高出現了幾次
<?php
$arr=[0,1,0,0,1,1,0,0,0,1,0,0,1,1,1];
$sArr=[0,0,1];
echo'出現'.substr_count(implode($arr,''),implode($sArr,'')).'次';
$arr=[0,1,0,0,1,1,0,0,0,1,0,0,1,1,1];
$times=0;
$sArr=[0,0,1];
$sIndex=0;
$sCount=count($sArr);
$arrLen=count($arr);
foreach($arras$k=>$v){
if($k>=$arrLen-$sCount+1){
break;
}
$addOne=true;
foreach($sArras$kk=>$vv){
if($arr[$k+$kk]!=$vv){
$addOne=false;
break;
}
}
if($addOne){
$times++;
}
}
echo'出現'.$times.'次';
?>
『貳』 PHP數字字元串左側補0、字元串填充和自動補齊的幾種方法
一、數字補0.
如果要自動生成學號,自動生成某某編號,就像這樣的形式「d0000009」、「d0000027」時,那麼就會面臨一個問題,怎麼把左邊用0補齊成這樣8位數的編碼呢?我想到了兩種方法實現這個功能。
方法一:
先構造一個數字10000000,千萬,也就是一個1,7個0,然後加上當前的編號(比如是3),那麼就得到
10000003,用字元串截取
substr('10000003',1,7)後就得到0000003,最後在與「d」拼接,就得到了最終的編號d0000003。
源碼如下:
復制代碼
代碼如下:
<?php
$num
=
3;
$temp_num
=
10000000;
$new_num
=
$num
+
$temp_num;
$real_num
=
"d".substr($new_num,1,7); //即截取掉最前面的「1」
echo
$real_num;
?>
方法二:
測出當前編號(比如是3)的長度strlen('3')=1,用要生成編號的總長度減去當前編號長度,得到需要填充0的個數,然後再用for循環填充0即可。
源碼如下:
復制代碼
代碼如下:
<?php
$num
=
3;
$bit
=
7;//產生7位數的數字編號
$num_len
=
strlen($num);
$zero
=
'';
for($i=$num_len;
$i<$bit;
$i++){
$zero
.=
"0";
}
$real_num
=
"d".$zero.$num;
echo
$real_num;
?>
方法三:另外幾種方法
復制代碼
代碼如下:
<?php
$sourceNumber
=
"1";
$newNumber
=
substr(strval($sourceNumber+1000),1,3);
echo
"$newNumber";
?>
/*這個時候就會出現:001
如果要增加位數的話可以將1000加大,然後把3也加大。
舉例:如果我要補上
"4個0"
第03行
就要變成這樣。*/
復制代碼
代碼如下:
<?php
$newNumber
=
substr(strval($sourceNumber+100000),1,5);
?>
/*其實就是總共要顯示幾位數字,就把$sourceNumber+1後面補上多少個0,最後一個數字就直接改成顯示幾位數字。*/
復制代碼
代碼如下:
/*string
str_pad
(
string
$input,
int
$pad_length
[,
string
$pad_string
[,
int
$pad_type]]
)*/
<?php
$input
=
"Alien";
echo
str_pad($input,
10);
//
proces
"Alien
"
echo
str_pad($input,
10,
"-=",
STR_PAD_LEFT);
//
proces
"-=-=-Alien"
echo
str_pad($input,
10,
"_",
STR_PAD_BOTH);
//
proces
"__Alien___"
echo
str_pad($input,
6
,
"___");
//
proces
"Alien_"
?>
/*補齊字元串的長度.以pad_string
補.默認補在右邊,如果STR_PAD_LEFT就補到左邊,STR_PAD_BOTH兩邊一起補。下次用str_pad,畢竟是內置的,肯定比自定義的快。*/
復制代碼
代碼如下:
/*
你上面的方法我覺得不怎麼好,介紹一下我寫的一個方法。方法函數如下,這樣當你要的結果001的話,方法:dispRepair('1',3,'0')
功能:補位函數
str:原字元串
type:類型,0為後補,1為前補
len:新字元串長度
msg:填補字元
*/
function
dispRepair($str,$len,$msg,$type='1')
{
$length
=
$len
-
strlen($str);
if($length<1)return
$str;
if
($type
==
1)
{
$str
=
str_repeat($msg,$length).$str;
}
else
{
$str
.=
str_repeat($msg,$length);
}
return
$str;
}
二、字元串填充、自動補齊、自動補全
遇到要輸出一定長度字元串的時候,可以使用一下兩種方法進行PHP字元串自動填充、自動補全
。
方法一:
復制代碼
代碼如下:$newStr=
sprintf('%05s',
$str);
sprintf()的功能非常靈活,上面的格式字元串中,「%05s
」表示輸出成長度為5的字元串,如果長度不足,左邊以零補全;如果寫成
「%5s
」,則默認以空格補全;如果希望使用其它字元補全,則要在該字元前加上單引號,即形如「%'#5s
」的表示以井號補全;最後,如果希望補全發生在
字元串右邊,則在百分號後加上減號,「%-05s
」。
方法二:
[code]$cd_no
=
str_pad(++$next_cd_no,8,'#',STR_PAD_LEFT);
str_pad(string,length,pad_string,pad_type):具體用法查看手冊。
string
必需。規定要填充的字元串。
length
必需。規定新字元串的長度。如果該值小於原始字元串的長度,則不進行任何操作。
pad_string
可選。規定供填充使用的字元串。默認是空白。
pad_type
可選。規定填充字元串的那邊。
這兩種方法很方便的實現了PHP字元串的自動補全功能。
『叄』 簡單高分問題,php,實現001遞增
$num = 0;//起始值
$weishu = 3;//需要的數字位數
$max = 100;//最大數
while($num<$max){
$num++;
$num = str_pad($num,$weishu,"0",STR_PAD_LEFT);
echo $num."<br/>";
}
『肆』 php 我想寫個循環 但是數字是3位的 就是 001 002 003 004 005 006 007 008 009 010 011 前面帶有個零
php格式化數字:位數不足前面加0補足
先實例,後講解
PHP代碼
1.<?php
2.$var=sprintf("%04d", 2);//生成4位數,不足前面補0
3.echo $var;//結果為0002
4.?>
PHP字元串sprintf()函數
語法
sprintf(format,arg1,arg2,arg++)
參數 描述
format 必需。轉換格式。
arg1 必需。規定插到 format 字元串中第一個 % 符號處的參數。
arg2 可選。規定插到 format 字元串中第二個 % 符號處的參數。
arg++ 可選。規定插到 format 字元串中第三、四等等 % 符號處的參數。
說明
參數 format 是轉換的格式,以百分比符號 ("%") 開始到轉換字元結束。下面的可能的 format 值:
•%% - 返回百分比符號
•%b - 二進制數
•%c - 依照 ASCII 值的字元
•%d - 帶符號十進制數
•%e - 可續計數法(比如 1.5e+3)
•%u - 無符號十進制數
•%f - 浮點數(local settings aware)
•%F - 浮點數(not local settings aware)
•%o - 八進制數
•%s - 字元串
•%x - 十六進制數(小寫字母)
•%X - 十六進制數(大寫字母)
arg1, arg2, ++ 等參數將插入到主字元串中的百分號 (%) 符號處。該函數是逐步執行的。在第一個 % 符號中,插入 arg1,在第二個 % 符號處,插入 arg2,依此類推。
PHP代碼
1.<?php
2.$number = 123;
3.$txt = sprintf("%f",$number);
4.echo $txt;
5.?>
循環很簡單:
<?php
$number=0;
if($number<100)
{
$number=$number+1;
$txt=sprintf("%03d",$number);//生成3位數,不足前面補0
echo $txt;
}
?>
『伍』 php代碼怎麼寫001到999的循環
<?php
for($i=1;$i<1000;$i++){
if(strlen($i)==1){
echo"00".$i."<br>";
}
if(strlen($i)==2){
echo"0".$i."<br>";
}
if(strlen($i)==3){
echo$i."<br>";
}
}
?>
顯示為結果為您說的 001——999
『陸』 php如何講一位整數轉換成多位整數啊,比如1轉換成001的形式,用那個函數啊,不能夠用字元拼接。--
sprintf -- Return a formatted string
string sprintf ( string format [, mixed args [, mixed ...]] )
如:echo sprintf("%03d", 1) , 輸出001
具體請參考php手冊
『柒』 php 字元串加1 是否有直接函數或代碼寫法
md5
按MD5演算法,從字元串得到32位的HASH。
urlencode
把URL做成可以放進地址欄的形式
urldecode
把放進地址欄的東西還原成URL
base64_encode
按BASE64演算法,把字元串(可以是二進制的)加密,得到長度與輸入有關,比輸入長很多,得到的字元范圍是可顯示的。
base64_decode
按BASE64演算法解密
ord
取一個字元串的第一個字母的ASCII代碼
chr
從一個數得到一個字元串,長度1,內容為以這個數為ASCII代碼的字元
explode
以第一個參數為分段符號,把第二個參數切斷,得到一個數組的字元串
implode
以第一個參數為連接符號,把第二個參數(一個數組的字元串)連接成一個字元串
count
返回字元串的長度
substr
取字元串的一部分
srand
設置隨機種子,同樣的隨機種子按照同樣的順序取到的隨機數必然相同,在PHP里一般用於DEBUG。在 PHP 較早版本中,必須在使用rand()之前調用 srand() 播下隨機數種子(以時間為srand的參數)。自 PHP 4.2.0 不再需要這樣做了(直接用rand()就好)。
『捌』 php數字遞增 001 in 002 in 003 逐步遞增
<?php
//for循環從1到10
for($i=1;$i<=10;$i++){
//格式化輸出%03d佔3位空間,空白用0補
printf("%03d ",$i);
}
?>
結果: