php5.2.17の配列に関する質問です。

補足説明にある配列1と配列2を合体して配列3を作りたいのですが、なかなか出来ずにいます。

(1)配列3の'textXX'の'XX'の部分は、配列2の'cid'に対応し一桁の場合は'0'を補完します。
(2)配列2の要素数は変動しますが、'cid'は'99'以上になることはありません。

どなたかよろしくお願いしますm(_ _)m

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/10/29 22:19:23
  • 終了:2013/10/29 23:16:41
id:appfb

質問者から

appfb2013/10/30 11:37:00

配列1

Array (
  [survey] => 好きなお酒はどれだ?
  [comment] => ホゲホゲ
  )

配列2

Array (
  [0] => Array (
    [cid] => 1
    [cvalue] => テキーラ
  [1] => Array (
    [cid] => 2
    [cvalue] => 焼酎
  [2] => Array (
    [cid] => 3
    [cvalue] => 日本酒
  [3] => Array (
    [cid] => 14
    [cvalue] => ワイン
  [4] => Array (
    [cid] => 25
    [cvalue] => ウイスキー
   ))

配列3

Array (
  [survey] => 好きなお酒はどれだ?
  [comment] => ホゲホゲ
  [text01] => テキーラ
  [text02] => 焼酎
  [text03] => 日本酒
  [text14] => ワイン
  [text25] => ウイスキー
  )

ベストアンサー

id:a-kuma3 No.1

a-kuma3回答回数4596ベストアンサー獲得回数19352013/10/29 22:53:55

ポイント100pt

こういう感じでしょうか?

<?php

// 配列1
$arr1 = Array (
  'survey' => '好きなお酒はどれだ?',
  'comment' => 'ホゲホゲ'
  );

// 配列2
$arr2 = Array (
  0 => Array (
    'cid' => 1,
    'cvalue' => 'テキーラ'
    ),
  1 => Array (
    'cid' => 2,
    'cvalue' => '焼酎'
    ),
  2 => Array (
    'cid' => 3,
    'cvalue' => '日本酒'
    ),
  3 => Array (
    'cid' => 14,
    'cvalue' => 'ワイン'
    ),
  4 => Array (
    'cid' => 25,
    'cvalue' => 'ウイスキー'
    )
   );


// 配列3に、配列1を複製
$arr3 = $arr1;

// 配列2の、それぞれの要素で繰り返し
foreach ($arr2 as $i => $value) {
    // cid を添え時に整形
    $idx = sprintf('text%02d', $arr2[$i]['cid']);

    // 添え字を指定して、cvalue を値に追加
    $arr3[$idx] = $arr2[$i]['cvalue'];
}


// 確認
var_dump($arr3);

?>

ideone.com で試してみたのが、こちら。
http://ideone.com/JYEdoy

他3件のコメントを見る
id:a-kuma3

http://us2.php.net/manual/ja/function.sprintf.php

何となく手が空いたときに、マニュアルをパラパラっと(紙じゃないけど)見てみるの、お勧めです。
関数の名前は覚えてなくても、「そういえば、こんなことをする関数があったはず」っていうのを思い出せるだけで、随分違います。

2013/10/29 23:25:08
id:appfb

なかなか、応用ができず難儀しています。
しかし暇を見つけるたびに読んでみます。
ご指導ありがとうございます。

2013/10/30 10:14:30

その他の回答(0件)

id:appfb

質問者から

appfb2013/10/29 22:25:26

質問文を編集しました。詳細はこちら

id:a-kuma3 No.1

a-kuma3回答回数4596ベストアンサー獲得回数19352013/10/29 22:53:55ここでベストアンサー

ポイント100pt

こういう感じでしょうか?

<?php

// 配列1
$arr1 = Array (
  'survey' => '好きなお酒はどれだ?',
  'comment' => 'ホゲホゲ'
  );

// 配列2
$arr2 = Array (
  0 => Array (
    'cid' => 1,
    'cvalue' => 'テキーラ'
    ),
  1 => Array (
    'cid' => 2,
    'cvalue' => '焼酎'
    ),
  2 => Array (
    'cid' => 3,
    'cvalue' => '日本酒'
    ),
  3 => Array (
    'cid' => 14,
    'cvalue' => 'ワイン'
    ),
  4 => Array (
    'cid' => 25,
    'cvalue' => 'ウイスキー'
    )
   );


// 配列3に、配列1を複製
$arr3 = $arr1;

// 配列2の、それぞれの要素で繰り返し
foreach ($arr2 as $i => $value) {
    // cid を添え時に整形
    $idx = sprintf('text%02d', $arr2[$i]['cid']);

    // 添え字を指定して、cvalue を値に追加
    $arr3[$idx] = $arr2[$i]['cvalue'];
}


// 確認
var_dump($arr3);

?>

ideone.com で試してみたのが、こちら。
http://ideone.com/JYEdoy

他3件のコメントを見る
id:a-kuma3

http://us2.php.net/manual/ja/function.sprintf.php

何となく手が空いたときに、マニュアルをパラパラっと(紙じゃないけど)見てみるの、お勧めです。
関数の名前は覚えてなくても、「そういえば、こんなことをする関数があったはず」っていうのを思い出せるだけで、随分違います。

2013/10/29 23:25:08
id:appfb

なかなか、応用ができず難儀しています。
しかし暇を見つけるたびに読んでみます。
ご指導ありがとうございます。

2013/10/30 10:14:30

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません