我需要輸出一個包含10個字母數字/下劃線字符的隨機字符串,其中第一個字符不能是數字。我的代碼如下:我的循環和array_rand()的代碼有什麼問題?
$arr = array_merge(range("a", "z"), range("A", "Z"), array("_"));
$name = array_rand($arr);
$arr = array_merge($arr, range(0, 9));
for($i = 1; $i < 10; $i++)
{
$name .= array_rand($arr);
}
echo $name;
但輸出是相當奇怪的是,總有一些像3329323960047113937
或933255318725381013
或48212116303047152448
。爲什麼它超過十個字符,爲什麼它以數字開頭(儘管當我啓動變量$name
時,$arr
內部沒有數字)?我應該使用foreach
而不是for
循環嗎?或者我應該使用array_rand()
以外的其他功能?我只是PHP的初學者,所以很抱歉這個愚蠢的問題。並提前感謝大家。
'foreach'和'for'循環不會對輸出差。它們只是不同的循環流程。此外,'array_ran()'返回數組鍵值,而不是值。 – Raptor