【PHP】forを2回利用した場合の帰り値が異なる
以下のように出力したい
_________________________ |_____|_c1|_c2|_c3|横合計| |___r1|_10|__5|_20|___35| |___r2|__7|__8|_12|___27| |___r3|_25|__9|130|__164| |縦合計|_42|_22|162|__226| ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
そこで、c1,c2,c3は以下のように出力しました。(htmlは省略しています)
php
1$arr = [ 2 'r1' => ['c1' => 10, 'c2' => 5, 'c3' => 20], 3 'r2' => ['c1' => 7, 'c2' => 8, 'c3' => 12], 4 'r3' => ['c1' => 25, 'c2' => 9, 'c3' => 130] 5]; 6for ($i=0; $i<3; $i++) { 7 list($key, $value) = each($arr); 8 for ($i=0; $i<3; $i++){ 9 list($inkey, $inval) = each($value); 10 echo $inval; 11 } 12} 13?>
次にr1以降を出力しようとしました。
php
1<?php 2$th = array_keys($arr); 3for($j=0; $j<count($arr); $j++){ 4 echo $th[$j]; 5 list($key, $value) = each($arr); 6 for($k=0; $k<count($value); $k++){ 7 list($inkey, $inval) = each($value); 8 echo $inval; 9 } 10} 11?>
上記のように、コーディングしたところ、うまく表示されませんでした。
r1の値がr2,r2の値がr3,r3の値はなしとなっています。
また、ネストしたfor文の条件にあるcount関数もエラーとなっており、$value(連想配列)を代入したのになぜエラーになるのかがわかりません。
連想配列のfor文の使い方に関して調べてみましたが、ネストする方法しか記載しておらず、解決策がわかりませんでした。 わかる方がいましたら、ご教授いただけると幸いです。 ※連想配列においては、foreachを利用することで、簡単に値を習得できることは承知してます。今回はforを用いて解く方法はないかと考えてのコーディングですので、承知ください。
実行しているコードをそのままコピペしていますか?
1つ目のコードについて、
・forの条件式内がどちらも$iですが間違いないですか?
・出力したいのかな、と思われる箇所がeach($value);となってますが、間違いないですか?
うまく表示されません、ということですが、実際の実行結果を提示頂けますか?
返答ありがとうございます!
1つ目のコードの条件式内がどちらも$iとなっていることに関しては、あまりよろしくはないと思いますが、この方法にすることでc1〜c3までが表示されるので、この方法に致しました。
echoの後の()に関しては、消すのを忘れていました。なぜ入れたのかも不明ですが、修正しときます!
ArrayListはJavaの概念です。
https://teratail.com/tags/ArrayList
返答ありがとうございます!
修正しときます!
echoではなく、eachになってますよ。。
あと、$valueと書いてありますが、$invalの間違いでしょうか?
いずれにせよ、実行してるコードをそのまま提示いただきたいです。もしそのままのコードだとしたら、1つ目のコードは何も表示されないはず。
返答ありがとうございます!
編集したら間違えてしまいました。申し訳ありません。
再度、修正致します!
回答2件
あなたの回答
tips
プレビュー