「みんな教えて! 選手権!!」開催のお知らせ

下記のように、キー値の一部に連番を持った連想配列
があるのですが、このキー値と連番で別の配列を
簡単に作る方法は無いでしょうか?
もとの配列
$ary = array("item0"=>"x","item1"=>"y","item2"=>"z","data0"=>"o","data1"=>"p","data2"=>"q");
上の$aryから
$item=array([0]=>"x",[1]=>"y",[2]=>"z");
$data=array([0]=>"o",[1]=>"p",[2]=>"q");
のような形の配列を得たいのです。

foreach($ary as $key => $val){
}
の構文で、$key値を調べて分断し、新しい配列に
pushしていくしかないでしょうか?
※PHP4.3です

A 回答 (1件)

考えればなにかありそうな気もしますが、とりあえずは


こんな感じでいけそうですね

<?
$ary = array("item0"=>"x","item1"=>"y","item2"=>"z","data0"=>"o","data1"=>"p","data2"=>"q");
foreach($ary as $key=>$val){
if(preg_match_all("/^([^0-9]+?)([0-9]+)$/",$key,$m)) ${$m[1][0]}[$m[2][0]]=$val;

}
print_r($item);
print_r($data);
?>
    • good
    • 0
この回答へのお礼

ありがとうございました。
正規表現が、どうも苦手で、いつも普通のstr処理関数
ばかり使って苦労しています。

お礼日時:2008/12/02 09:08

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


おすすめ情報