phpについて教えて下さい。

$aaa = "a,b,c"; というデータを $bbb[a][b] = c; に、
$aaa = "a,b,c,d"; の場合は、$bbb[a][b][c] = d; に、
$aaa = "a,b,c,d,e"; の場合は、$bbb[a][b][c][d] = e; に、
とする簡単な方法はありませんでしょうか。
関数があると理想なのですが.....。

よろしくお願いします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/06/15 19:30:14
  • 終了:2012/06/16 00:06:37

ベストアンサー

id:HowAreYou No.1

HowAreYou回答回数91ベストアンサー獲得回数172012/06/15 22:33:47

<?php
$aaa = "a,b,c,d,e" ;

eval(preg_replace('/(.*),(.*)/e',
                  "'\$bbb[\"'.preg_replace('/,/', '\"][\"','\\1').'\"]=\"\\2\";'",
                  $aaa)) ;

print_r($bbb) ;

explode で分割する方法もあると思うけど簡潔な書き方を思いつかなかった。

id:worldtravel

ありがとうございます。

何でこういう事を書けるのか不思議でたまりません。

私には何年経っても無理そうです --;

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

2012/06/16 00:06:10
  • id:HowAreYou
    美しくないのでこっちに差し替えます。

    $aaa = "a,b,c,d,e" ;

    for($l = explode(',', $aaa), $bbb = array_pop($l);
    count($l);
    $bbb = array(array_pop($l) => $bbb)) ;

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

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

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

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