我試圖給PHP循環中的每個項目添加一個整數。所以第一個項目獲得+1,第二個項目獲得+2,第三個項目+3 ....等PHP爲每個項目添加+1更多
我發現代碼添加到每個項目相同的數字,但我希望它增加每個項目。
下面是我現在用來獲得+.1到每個項目。
$delay = 0.1;
foreach ($posts as $post){
$delay+= .1;
}
如何爲每個項目添加+.1?
我試圖給PHP循環中的每個項目添加一個整數。所以第一個項目獲得+1,第二個項目獲得+2,第三個項目+3 ....等PHP爲每個項目添加+1更多
我發現代碼添加到每個項目相同的數字,但我希望它增加每個項目。
下面是我現在用來獲得+.1到每個項目。
$delay = 0.1;
foreach ($posts as $post){
$delay+= .1;
}
如何爲每個項目添加+.1?
假設使用順序鍵基於0的整數索引的數組,你可以做這樣的事情:
$delayBase = $delay = 0.1;
foreach ($posts as $k => $post){
$delay += ($k + 1)($delayBase);
}
在第一次迭代(當$k
爲0),這將增加0.1至$delay
。第二次迭代將添加(2 * 0.1)或0.2到$delay
。第三次迭代將添加(3 * 0.1)或0.3等等。
更新
我覺得@MarcB是正確的意見,你甚至都不需要循環計算算術級數(這裏的系列爲0.1第一ñ元素的總和,0.2%,0.3 ...)方程(實測here)的一般形式是:
小號ñ = N(A 1 +一個ñ )/ 2
凡ñ是我們正在尋找的系列總結的項數,一個是第一項和ñ是該系列中的最後一項。
在此之後,我們可以將代碼減少到這一點:
$numPosts = count($posts);
$sum = ($numPosts(0.1 + ($numPosts * 0.1))/2)
$delay = 0.1 + $sum;
這也將得到解決潛在的問題,如果$posts
恰好是一個關聯數組,在0無法啓動,或在縫隙或孔洞指數。
您可以輕鬆地添加到值,但我喜歡這個。投票。 – mdixon18
如果第一個鍵是'10'或'a'會怎麼樣? – AbraCadaver
@AbraCadaver然後OP將需要一個不同的解決方案,因此我在開始時的警告。 –
如何:
$delay = 0.1;
for ($i=0; $i<sizeof($posts); $i++){
$posts[i] += $i*delay;
}
試試這個:
$delay = $i = 0.1;
foreach ($posts as $post) {
$delay+= $i;
$i += 0.1;
}
做$延遲= $延遲+ 0.1;工作? – mdixon18
這不是一個整數,這些都是浮點數,你基本上需要一個計數,它是x * 0.1,所以它最終如你所願,添加你要做的值:'$ delay + =(count * 0.1); –
爲什麼循環? '$ delay = count($ posts)* 0.1'? –