[PHP-users 33958] Re: 多次元配列について

岡本 基 okamoto @ airnet.jp
2008年 8月 8日 (金) 20:19:27 JST


岡本です。
こんな感じですかね。

とりあえず、配列に値を代入する時はなるべく初期化して使用した方が良いかと
思います。

$array = array(
'b:秋田',
'b:秋田',
'c:群馬',
'c:千葉',
'c:埼玉',
'g:京都',
'g:大阪',
);

$cnt	= count($array);
$data	= array();
for($i = 0; $i < $cnt; $i++){
	$tmp_arr	= explode(':',$array[$i]);
	$data[$tmp_arr[0]][]	= $array[$i];
}
var_dump($data);

//結果
array(3) {
  ["b"]=>
  array(2) {
    [0]=>
    string(7) "b:秋田"
    [1]=>
    string(7) "b:秋田"
  }
  ["c"]=>
  array(3) {
    [0]=>
    string(7) "c:群馬"
    [1]=>
    string(7) "c:千葉"
    [2]=>
    string(7) "c:埼玉"
  }
  ["g"]=>
  array(2) {
    [0]=>
    string(7) "g:京都"
    [1]=>
    string(7) "g:大阪"
  }
}


On Fri, 8 Aug 2008 19:52:14 +0900
ken @ lin.bz wrote:

>  初歩的な質問で済みません。
>  サンプルですが配列 $i を
> 
> $i = array(
> 'b:秋田',
> 'b:秋田',
> 'c:群馬',
> 'c:千葉',
> 'c:埼玉',
> 'g:京都',
> 'g:大阪',
> );
> 
> 以下のようにしたいのですが
> 
> [b] => arrar('b:秋田', 'b:秋田')
> [c] => arrar('c:群馬', 'c:千葉', 'c:埼玉')
> [g] => arrar('g:京都',  'g:大阪',)
> 
>  どのようにすれば宜しいのでしょうか。
> 
> 稚拙ながら試した見たのですが、
> foreach($i as $value){
>  $j = explode(':', $value);
>  array_push($k[$j[0]], $value);
> }
>  3つのkeyまではできたのですが、その先、止ってしまい 
> ました。
> アドバイス頂ければ幸いです。
> 
> 小芝
> 
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3





PHP-users メーリングリストの案内