Heim >Backend-Entwicklung >PHP-Tutorial >总是搞不懂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"
}
....更多数组
}
我想把里面的数据这样遍历循环出来:
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 <<< HTML<li><a href="$r" /><img src="{$ar['pic'][$i]}"/ alt="总是搞不懂foreach怎么这样遍历这样的数组" >{$ar['title'][$i]}<em>{$ar['price'][$i]}</em></a></li>HTML;}方案2
foreach(array_map(null, $ar['id'], $ar['pic'], $ar['title'], $ar['price']) as $i=>$r) { echo <<< HTML<li><a href="$r[0]" /><img src="$r[1]"/ alt="总是搞不懂foreach怎么这样遍历这样的数组" >$r[2]<em>$r[3]</em></a></li>HTML;}均可输出
<li><a href="n1" /><img src="1.jpg"/ alt="总是搞不懂foreach怎么这样遍历这样的数组" >标题1<em>85.00</em></a></li><li><a href="n2" /><img src="2.jpg"/ alt="总是搞不懂foreach怎么这样遍历这样的数组" >标题2<em>155.00</em></a></li><li><a href="n3" /><img src="3.jpg"/ alt="总是搞不懂foreach怎么这样遍历这样的数组" >标题3<em>49.00</em></a></li><li><a href="n4" /><img src="4.jpg"/ alt="总是搞不懂foreach怎么这样遍历这样的数组" >标题4<em>75.00</em></a></li>