『どう書く?.org』への投稿ひさびさ。
お題はこちら。
今回は与えられたテーブルを元に階層的な連送配列を作りなさいというもの。
配列を&で渡しているのがポイント。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | $tokyo = array( array('東京都', '区部', '千代田区', 'object1') ,array('東京都', '区部', '中央区', 'object2') ,array('東京都', '区部', '港区', 'object3') ,array('東京都', '多摩地域', '支部', '昭島市', 'object4') ,array('東京都', '多摩地域', '支部', 'あきる野市', 'object5') ,array('東京都', '多摩地域', '西多摩郡', '奥多摩町', 'object6') ,array('東京都', '島嶼部', '大島支庁', '大島町', 'object7') ,array('東京都', '島嶼部', '三宅支庁', '三宅村', 'object8') ); $tokyo_tree = array(); foreach ( $tokyo as $obs ) { $w = &$tokyo_tree; $cnt = count( $obs ); for ( $i = 0; $i < $cnt; $i++ ) { if ( $i == $cnt-1 ) { $w = $obs[$i]; } else { $w = &$w[$obs[$i]]; } } } print_r( $tokyo_tree ); |
結果はこんなかんじ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | Array ( [東京都] => Array ( [区部] => Array ( [千代田区] => object1 [中央区] => object2 [港区] => object3 ) [多摩地域] => Array ( [支部] => Array ( [昭島市] => object4 [あきる野市] => object5 ) [西多摩郡] => Array ( [奥多摩町] => object6 ) ) [島嶼部] => Array ( [大島支庁] => Array ( [大島町] => object7 ) [三宅支庁] => Array ( [三宅村] => object8 ) ) ) ) |
投稿:
http://ja.doukaku.org/comment/10876/
PHP Rank:17(61.1%)
Comments are closed.