ホームページ >バックエンド開発 >PHPチュートリアル >foreach がこのような配列をどのように走査できるのかまだ理解できません

foreach がこのような配列をどのように走査できるのかまだ理解できません

WBOY
WBOYオリジナル
2016-06-23 14:25:101197ブラウズ

たとえば、次のような配列があります。
array(4) {
["title"]=>
array(9) {
[0]=>
string(3) "Title 1"
[1 ]=> ;
string(3) 「タイトル 2」
string(3) =>
array(9) {
[0]=>
string(1) "n1"
[1]=&
文字列(1) "n2"
[2]=>
文字列(1) "n3"
[3]=>
文字列(1) "n4"
}
["pic"]=> (9) {
[0]=>
文字列(4) "1.jpg"
[1]=>
文字列(4) "2.jpg"
文字列(4) "3.jpg"
[3]=>
文字列(4) " 4.jpg" }
["価格"]=>
配列(9) {
[0]=>
文字列(5) "85.00"
[1]=>
文字列(6) " 155.00 "
[2]=>
" 文字列(5) "49.00"
[3]=>
文字列(5) "75.00"
}
.... さらに配列

}

内部に入りたい データは次のように走査され、ループされます。
f9b5850c2e632f7f6264a2c5331d58fc
72cc6d9f2c51bac8dc7c2efbed35f28c ;
c0bbfb0e59df610cd2d7dfb8c00607f2/em>
bed06894275b65c1ab86501b08a632eb href="n3" />
482cc79a7a0790ec9e38d7484bf1de08
5db79b134e9f6b82c0b36e0489ee08ed
103d2ed9afd06aadce2c4f0ddddcb495
aadd946b28ca1dd024d3d0baf0e138f0
5db79b134e9f6b82c0b36e0489ee08ed bed06894275b65c1ab86501b08a632eb


何を書けばいいですか?
foreach($arr as $key => $value)
{
foreach(記述されません)
{
echo '25edfb22a4f469ecb59f1190150159c6'
echo '82a4568c2266d5a57882a5e37e3d80ec';
echo '0d25203e57e51a5ce93c23c8b5f8d919';
echo $title;
echo '907fae80ddef53131f3292ee4f81644b'.$price.'80426998312a5e70cda628982102df8b';
echo '5db79b134e9f6b82c0b36e0489ee08ed';
}
}


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

foreach( $value as $k=> ;$ v)
赤いものは前のレイヤーと同じ値ですが、青いものは異なります

配列構造については、行と列を行うために以前投稿した 2 次元配列クラスを使用するのが最善です出力


のような配列構造の場合、行と列の変換を行うには、以前に投稿した 2 次元配列クラスを使用するのが最善です。出力時に一度トラバースできます
どこですか?リンクを送ってもらえますか?

投稿数は少ないですが、検索すれば見つかります

実際、配列のキーと値の対応が確認できれば、二次元のキー値を直接走査することもできます
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
Title 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]}"/>{$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]"/>$r[2]<em>$r[3]</em></a></li>HTML;}
が使えます Output
<li><a href="n1" /><img src="1.jpg"/>标题1<em>85.00</em></a></li><li><a href="n2" /><img src="2.jpg"/>标题2<em>155.00</em></a></li><li><a href="n3" /><img src="3.jpg"/>标题3<em>49.00</em></a></li><li><a href="n4" /><img src="4.jpg"/>标题4<em>75.00</em></a></li>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。