ホームページ > バックエンド開発 > PHPチュートリアル > PHPの配列ループの問題を解決するのを手伝ってください

PHPの配列ループの問題を解決するのを手伝ってください

WBOY
リリース: 2016-06-23 13:35:06
オリジナル
882 人が閲覧しました

次のような配列があります

$arr = array(1,2,3,4,5,6,7,8);
start1
1
2
3
4 を出力するためにループを使用したい
終了1
開始2
1
2
3
4
終了2
----------------------------------- ----- ------------------
start1
5
6
7
8
end1
start2
5
6
7
8
end2

の意味4 ごとに配列を変更します 各グループはグループに分けられます
そして、各グループは 2 回繰り返される必要があります


ディスカッションに返信 (解決策)

<?php$arr = array(1,2,3,4,5,6,7,8);for($i=0; $i<count($arr); $i+=4){	$temp = array_slice($arr, $i, 4);	for($k=1; $k<=2; $k++){		echo 'start'.$k.'<br>';		foreach ($temp as $val) {			echo $val.'<br>';		}		echo 'end'.$k.'<br>';	}}
ログイン後にコピー

$arr = array(1,2,3,4,5,6,7,8);$n = 2; // 循环2次$split = 4; // 4个为一个分组echo '<pre class="brush:php;toolbar:false">';response($arr, $n, $split);echo '
';function response($arr, $n, $split){ while(count($arr)>0){ $tmp = array_splice($arr, 0, $split); for($i=0;$i<$n;$i++){ echo 'start'.($i+1)."\r\n"; echo implode("\r\n", $tmp)."\r\n"; echo 'end'.($i+1)."\r\n"; } echo "----------------------------------------------------------\r\n"; }}
ログイン後にコピー


start11234end1start21234end2----------------------------------------------------------start15678end1start25678end2
ログイン後にコピー

while(count($arr) >0)

while ループが終了しないのはなぜですか?

while(count($arr)>0)

while ループが終了しないのはなぜですか?


array_splice は、 $arr の要素を削除し、$arr の要素を削減します。すべての要素を取り出すと、次のようになります。 $arr が空の場合は、ループを終了します。
わかりました、ありがとうございます

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート