[英]an better way to do this code
myarray[] = $my[$addintomtarray]
//52 elements
for ($k=0; $k <= 12; $k++){
echo $myarray[$k].' ';
}
echo '<br>';
for ($k=13; $k < 26; $k++){
echo $myarray[$k].' ';
}
echo '<br>';
for ($k=26; $k < 39; $k++){
echo $myarray[$k].' ';
}
echo '<br>';
for ($k=39; $k <= 51; $k++){
echo $myarray[$k].' ';
}
如何縮短這個數組代碼...我在這里所做的就是將52個元素的數組分成4個元素,每個元素包含13個元素。 另外我正在添加br和space的形成
謝謝
使用模數運算符( %
)知道何時處於13的倍數:
for ($k=0; $k <= 51; $k++){
echo $myarray[$k].' ';
if (($k > 0) && (($k % 13) === 0)) {
echo '<br>';
}
}
更好的方法是使用array_slice函數。
來自文檔:
array array_slice ( array $array , int $offset [, int $length [, bool $preserve_keys = false ]] )
“array_slice()返回由offset和length參數指定的數組數組中的元素序列。”
循環遍歷一個循環中的所有元素。 有條件地使用%比較。
〜編輯〜請參閱下面的Klatchko先生的代碼。
我昨天想出了這個成語,以防止我的網絡爬蟲泛濫。
$myarray[] = $my[$addintomtarray]
// ...
// NOTE: This modifies $myarray! Make a copy of it first if you
// need to (e.g. by making this its own function and passing by-value).
while(($line = array_splice($myarray, 0, 13))) {
echo implode(' ', $line);
if(count($myarray) !== 0) {
echo '<br/>';
}
}
我總是喜歡使用array_chunk()
。 一旦我以原始形式分發數組,我就可以以任何我想要的方式顯示它。
array_chunk( $myarray, 13 );
現在你有一個4元素數組,每個元素包含一個13元素數組。 一個簡單的嵌套循環將允許您以您選擇的任何方式進行迭代和顯示。
你絕對不需要為循環做那么多:
$myarray[] = $my[$addintomtarray];
//52 elements
$i = 1;
foreach( $myarray as $v ){
echo "$v ";
if( 0 == $i % 13 )
echo '<br />';
$i++;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.