Heim > Backend-Entwicklung > PHP-Tutorial > 总是搞不懂foreach怎么这样遍历这样的数组

总是搞不懂foreach怎么这样遍历这样的数组

WBOY
Freigeben: 2016-06-23 14:25:10
Original
1190 Leute haben es durchsucht

例如有这样一个数组:
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怎么这样遍历这样的数组
    标题1
    85.00




  • 总是搞不懂foreach怎么这样遍历这样的数组
    标题2
    155.00




  • 总是搞不懂foreach怎么这样遍历这样的数组
    标题3
    49.00




  • 总是搞不懂foreach怎么这样遍历这样的数组
    标题4
    75.00




  • 里面应该怎么写的?
    foreach($arr as $key => $value)
    {
    foreach(里面不会写了)
    {
    echo '
  • ';
    echo '';
    echo '总是搞不懂foreach怎么这样遍历这样的数组';
    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"),);
    Nach dem Login kopieren
    方法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;}
    Nach dem Login kopieren
    方案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;}
    Nach dem Login kopieren
    均可输出
    <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>
    Nach dem Login kopieren

    Quelle:php.cn
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage