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和空格添加形式
谢谢
答案 0 :(得分:8)
使用模数运算符(%
)知道你何时达到13的倍数:
for ($k=0; $k <= 51; $k++){
echo $myarray[$k].' ';
if (($k > 0) && (($k % 13) === 0)) {
echo '<br>';
}
}
答案 1 :(得分:1)
更好的方法是使用array_slice函数。
来自文档:
array array_slice ( array $array , int $offset [, int $length [, bool $preserve_keys = false ]] )
“array_slice()返回数组 array 中的元素序列,由offset和length参数指定。”
答案 2 :(得分:0)
循环遍历一个循环中的所有元素。有条件地使用%比较。
〜编辑〜 请参阅下面的Klatchko先生的代码。
答案 3 :(得分:0)
我昨天想出了这个成语,以防止我的网络抓取工具泛滥。
$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/>';
}
}
答案 4 :(得分:0)
我一直希望使用array_chunk()
。一旦我以原始形式分发数组,我就可以以任何我想要的方式显示它。
array_chunk( $myarray, 13 );
现在你有一个4元素数组,每个元素包含一个13元素数组。一个简单的嵌套循环将允许您以您选择的任何方式进行迭代和显示。
答案 5 :(得分:-1)
你绝对不需要为循环做那么多:
$myarray[] = $my[$addintomtarray];
//52 elements
$i = 1;
foreach( $myarray as $v ){
echo "$v ";
if( 0 == $i % 13 )
echo '<br />';
$i++;
}