• 締切済み

二次元配列について

$recordは二次元配列です。 こういうものを書いておりまして、    foreach($record as $key => $val) { if($key > 18){   for($i=1; $i<=25; $i++){ $data = $record[0].",".$i.",".★★★; ★★★の位置に$record[19][1]、$record[20][1]…$record[19][2]、$record[20][2]… という値を順に入れていきたいのですが、どうしたらよいでしょうか。

みんなの回答

  • mpx
  • ベストアンサー率71% (149/209)
回答No.2

質問の内容をもう一度整理した方が良さそうですね >> $recordは二次元配列です。 >>  中略 >> $data = $record[0].",".$i.",".★★★; 説明は二次元なのに、例示は1次元です。 >> $record[19][1]、$record[20][1]…$record[19][2]、$record[20][2]… $recordの構成、特に各キーの下限上限値が不明です(・・・での省略部分) $recordの構成が分かればもう少しスマートに組めそうですが 無難に下記でどうでしょう foreach($record as $key => $val) {  $i2=1;  $i1=19;  $i1max=25; //配列のキー値の上限を勝手に決めました  if($key > 18){   for($i=1; $i<=25; $i++){    $data = $record[0][0].",".$i.",".$record[$i1][$i2];    $i1++;    if ($i1>$i1max) {$i1=19;$i2++;}   }  } }

okapi5243
質問者

お礼

もうしわけありませんでした。 あせっていていろいろと説明不足の質問をしてしまいました。 結局自己解決しました。 こんな質問に丁寧なご回答、本当にありがとうございました。

回答No.1

これだけでは、質問の意図がつかめませんので 補足をお願いします。 まず、$recordの構成を簡単にでもいいので説明ください。 例: $record = array( 19=>array( "aa","bb","cc" ), 20=>array( "AA","BB","CC" ) ); $recordの展開ループ中に再度$recordを呼んでいるようですが、 どういった事をしようとされていますか? 単純に for($i=1;$i<=25;$i++){ $data = $record[0].",".$i.",".$record[19][$i]; $data = $record[0].",".$i.",".$record[20][$i]; } という呼び出し方でいいような気もしますが。 $record[0]の存在も不明です。

okapi5243
質問者

お礼

もうしわけありませんでした。 あせっていていろいろと説明不足の質問をしてしまいました。 結局自己解決しました。 こんな質問に丁寧なご回答、本当にありがとうございました。

関連するQ&A

専門家に質問してみよう