Home > Backend Development > PHP Tutorial > 数组循环输出问题

数组循环输出问题

WBOY
Release: 2016-06-23 13:07:04
Original
881 people have browsed it

$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循环输出完毕,停止输出
Copy after login

$a,$b都是数组,循环是为了在前台显示,每显示3条a表数据,插入一条广告(注:广告在数据库表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)*/
Copy after login
Copy after login

$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)*/
Copy after login
Copy after login


很好的思路。非常值得借鉴!

$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>';}
Copy after login
Copy after login
1234广告1567广告28910广告3111213
Copy after login
Copy after login

$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>';}
Copy after login
Copy after login
1234广告1567广告28910广告3111213
Copy after login
Copy after login


如果$b的key不是数字,这种方法不是不可行了吗?因为$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);
Copy after login
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] =>         ))
Copy after login

不是下标数组,你可以另设一个计数器
也可以用 array_values 将其编程下标数组

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template