总是搞不懂foreach怎么这样遍历这样的数组
array(4) {
["title"]=>
array(9) {
[0]=>
string(3) "标题1"
[1]=>
string(3) "标题2"
[2]=>
string(3) "标题3"
[3]=>
string(3) "标题4"
}
["id"]=>
array(9) {
[0]=>
string(1) "n1"
[1]=>
string(1) "n2"
[2]=>
string(1) "n3"
[3]=>
string(1) "n4"
}
["pic"]=>
array(9) {
[0]=>
string(4) "1.jpg"
[1]=>
string(4) "2.jpg"
[2]=>
string(4) "3.jpg"
[3]=>
string(4) "4.jpg"
}
["price"]=>
array(9) {
[0]=>
string(5) "85.00"
[1]=>
string(6) "155.00"
[2]=>
string(5) "49.00"
[3]=>
string(5) "75.00"
}
....更多数组
}
我想把里面的数据这样遍历循环出来:
标题1
85.00
标题2
155.00
标题3
49.00
标题4
75.00
里面应该怎么写的?
foreach($arr as $key => $value)
{
foreach(里面不会写了)
{
echo '
echo '';
echo '';
echo $title;
echo ''.$price.'';
echo '';
echo '
}
}
回复讨论(解决方案)
foreach( $value as $k=>$v)
红色的和上一层的值相同,蓝色则要不同
你这种数组结构,最好用我之前发过的一个二维数组类做一次行列转换,就简单多了,输出时遍历一次则可
你这种数组结构,最好用我之前发过的一个二维数组类做一次行列转换,就简单多了,输出时遍历一次则可
在哪?链接可否发我一下。
我发的帖子很少,你搜一下就能找到
其实如果你能确认数组的键值对应,也可以直接遍历二维键值
for($i=0;$i echo $array["title"][$i];
……
}
foreach( $value as $k=>$v)
红色的和上一层的值相同,蓝色则要不同
这样出来的是就是所有数据了。
效果是这样了:
标题1
标题2
标题3
标题4
n1
n2
n3
n4
1.jpg
2.jpg
3.jpg
4.jpg
85.00
155.00
49.00
75.00
只是取出了所有数据而已,不是我要的
标题1,n1,1.jpg,85.00
标题2,n2,2.jpg,155.00
标题3,n3,3.jpg,49.00
标题4,n4,4.jpg,75.00
只是取出了所有数据而已,不是我要的
标题1,n1,1.jpg,85.00
标题2,n2,2.jpg,155.00
标题3,n3,3.jpg,49.00
标题4,n4,4.jpg,75.00
你的数据结构就是如此,所以说让你行列转换一下,或者按#4写的
对于数据
$ar = array( "title" => array("标题1", "标题2", "标题3", "标题4"), "id" => array("n1", "n2", "n3", "n4"), "pic" => array("1.jpg", "2.jpg", "3.jpg", "4.jpg"), "price" => array("85.00", "155.00", "49.00", "75.00"),);方法1:
foreach($ar['id'] as $i=>$r) { echo {$ar['title'][$i]}{$ar['price'][$i]}HTML;}方案2
foreach(array_map(null, $ar['id'], $ar['pic'], $ar['title'], $ar['price']) as $i=>$r) { echo $r[2]$r[3]HTML;}均可输出
上一篇: 学习用php实现mvc简单框架