電子書籍の厳選無料作品が豊富!

array_combineがうまくいかないので、教えてください

■やりたいこと
・一方の配列をキー、もう一方の配列を値として、新たな配列を生成したい

■現状
$c = array_combine($a , $b);とやると、

Array c
(
  [1] => 2
  [2] => 0
  [3] => 0
)
となってしまいます

■元データ
Array a
(
  [0] => 1
  [1] => 2
  [2] => 2
  [3] => 1
  [4] => 3
  [5] => 1
  [6] => 2
  [7] => 2
  [8] => 3
  [9] => 1
)
Array b
(
  [0] => 0
  [1] => 2
  [2] => 0
  [3] => 2
  [4] => 2
  [5] => 0
  [6] => 2
  [7] => 0
  [8] => 0
  [9] => 2
)

■質問
・元データから、下記結果を得るにはどうすればよいでしょうか?
Array c
(
  [1] => 0
  [2] => 2
  [2] => 0
  [1] => 2
  [3] => 2
  [1] => 0
  [2] => 2
  [2] => 0
  [3] => 0
  [1] => 2
)
・また、array_combineだとなぜ望む結果が得られないのでしょうか? 重複しているから?

A 回答 (1件)

> array_combineだとなぜ望む結果が得られないのでしょうか? 重複しているから?



そのとおりというか、多分PHPでは表現不可能な配列かと。

たとえば、$c[1]を評価したとき、どういう値が返ってくるのを想定しているか次第では、

(
  ( [1]=>0 )
  ( [2]=>2 )
  ( [2]=>0 )
  ……
)
――みたいな連想配列の配列にするか、

(
  [1]=>( 0 2 0 2 )
  [2]=>( 2 0 1 0 )
  ……
)
――みたいな配列の連想配列で表現できるかもしれません。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

>多分PHPでは表現不可能な配列かと
array_combine以前の話ですね。
気がつきませんでしたー

お礼日時:2012/09/23 13:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!