配列ループ出力の問題

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

$a = M('a');//从数据库A表中读取数据(数组)$b = M('b');//从数据库A表中读取数据(数组)foreach ($a as $k=>$v){	echo $v;}foreach ($b as $kk=>$vv){	echo $vv;}//注释:代码只是为了更好的说明//读取3条$v后读取1条$vv再循环读取3条$v,1条$vv,一直循环下去,直到$v循环输出完毕,停止输出
ログイン後にコピー

$a、$b は両方とも配列です。ループの目的は、テーブル a のデータが 3 つ表示されるたびに、広告が挿入されることです (注: 広告はデータベース テーブル b にあります)。 ) データ表示を繰り返すことはできません。これを達成するにはどうすればよいでしょうか?


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

$a = array(1,2,3,4,5,6,7,8,9,10,11,12,13);$b = array('广告1','广告2','广告3');$newa = array_chunk($a,3);foreach($b as $k=>$v){	array_push($newa[$k],$v);}$data = array();foreach($newa as $v){	$data = array_merge($data,$v);}print_r($data);/*Array(    [0] => 1    [1] => 2    [2] => 3    [3] => 广告1    [4] => 4    [5] => 5    [6] => 6    [7] => 广告2    [8] => 7    [9] => 8    [10] => 9    [11] => 广告3    [12] => 10    [13] => 11    [14] => 12    [15] => 13)*/
ログイン後にコピー
ログイン後にコピー

$a = array(1,2,3,4,5,6,7,8,9,10,11,12,13);$b = array('广告1','广告2','广告3');$newa = array_chunk($a,3);foreach($b as $k=>$v){	array_push($newa[$k],$v);}$data = array();foreach($newa as $v){	$data = array_merge($data,$v);}print_r($data);/*Array(    [0] => 1    [1] => 2    [2] => 3    [3] => 广告1    [4] => 4    [5] => 5    [6] => 6    [7] => 广告2    [8] => 7    [9] => 8    [10] => 9    [11] => 广告3    [12] => 10    [13] => 11    [14] => 12    [15] => 13)*/
ログイン後にコピー
ログイン後にコピー


とても良いアイデアです。非常に学ぶ価値があります。

$a = array(1,2,3,4,5,6,7,8,9,10,11,12,13);$b = array('广告1','广告2','广告3');$g = 0;foreach($a as $k=>$v) {  echo $v . '<br>';  if($k && $k % 3 == 0)    echo @$b[$g++] . '<br>';}
ログイン後にコピー
ログイン後にコピー
1234广告1567广告28910广告3111213
ログイン後にコピー
ログイン後にコピー

$a = array(1,2,3,4,5,6,7,8,9,10,11,12,13);$b = array('广告1','广告2','广告3');$g = 0;foreach($a as $k=>$v) {  echo $v . '<br>';  if($k && $k % 3 == 0)    echo @$b[$g++] . '<br>';}
ログイン後にコピー
ログイン後にコピー
1234广告1567广告28910广告3111213
ログイン後にコピー
ログイン後にコピー


$b のキーが数字でない場合、この方法は実行不可能ではないでしょうか。 $a と $b は両方ともデータベースから取得されるため、実際には連想配列になります。

$a = array(1,2,3,4,5,6,7,8,9,10,11,12,13);$b = array('广告1','广告2','广告3', '', '');$t = array_map('array_merge', array_chunk($a, 3), array_chunk($b, 1));print_r($t);
ログイン後にコピー
Array(    [0] => Array        (            [0] => 1            [1] => 2            [2] => 3            [3] => 广告1        )    [1] => Array        (            [0] => 4            [1] => 5            [2] => 6            [3] => 广告2        )    [2] => Array        (            [0] => 7            [1] => 8            [2] => 9            [3] => 广告3        )    [3] => Array        (            [0] => 10            [1] => 11            [2] => 12            [3] =>         )    [4] => Array        (            [0] => 13            [1] =>         ))
ログイン後にコピー

これは添字配列ではありません。別のカウンターを設定できます
array_values を使用して添字配列としてプログラムすることもできます

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