質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.44%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

5回答

2661閲覧

PHPで動的に配列に階層を作って生成したい

KazukiKudo

総合スコア37

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

3クリップ

投稿2019/05/18 22:07

編集2019/05/18 22:08

調べたけどなかなかわからなかったのでご教授いただければ幸いです。

やりたいことは、
例えばこのような配列$aがあります。

php

1$a = [ 2 ['1', '2'], 3 ['1', '2'], 4 ['1', '3'], 5 ['4', '5', '6'], 6 ['4', '7'] 7];

この配列$aの中のそれぞれの配列の中の数字は、左から順に親子の関係であると考えます。
また、重複している組み合わせは一つと考えます。
この$aの場合、「'1'」は「'2'」と「'3'」を子供に持ち、「'4'」は「'5'」「'7'」を子供に持ち、さらに「'5'」は「'6'」を子供に持っていると考えます。
この考えで、それぞれの値をキーにした新たな配列を生成したいです。

説明がわかりづらくて申し訳ないですが、この例でいうと下記のような配列$bを新たに生成したいです。

php

1$b = [ 2 '1' => [ 3 '2' => [], 4 '3' => [] 5 ], 6 '4' => [ 7 '5' => [ 8 '6' => [] 9 ], 10 '7' => [] 11 ] 12];

キーを動的に定義してしかも深さが未知なときどうすればよいのかわからず詰まってしまいました。
何卒アドバイスの程よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/05/18 23:57

そもそもですが、 ['1', '2']となっている時点で並列です。 ['1', '2','3']のようになるだけでなく、その中も配列になる可能性も加味する必要がありませんか? 例['1', ['2',['3']]] 考え方は結構なのですが、そもそも最初の配列がどのように作られるのかのほうが大事で、もし可能なら配列を組み直すのではなく「生成したい形ではじめから出力する」ようにはできないのでしょうか? 動的で未知なら余計に、配列の加工はあまり賢明ではないと思います。
退会済みユーザー

退会済みユーザー

2019/05/19 00:13

象しゃんは、あいかわらずトンチンカンな事ばっかり言っていまちゅねぇ…。
退会済みユーザー

退会済みユーザー

2019/05/19 00:13

象しゃんは、仕事をちた事があるのでちょうか?
m.ts10806

2019/05/19 00:28

意図が分からないなら冷やかしすら無意味。邪魔です。
退会済みユーザー

退会済みユーザー

2019/05/19 00:46

象しゃんは、本当に頭が固いでちゅねぇ…。 そんなんで仕事出来ているのか甚だ疑問でちゅ。 >列を組み直すのではなく「生成したい形ではじめから出力する」ようにはできないのでしょうか?
退会済みユーザー

退会済みユーザー

2019/05/19 00:47

象しゃんの言っていることは、現実世界と真逆の方向なんでちゅが、 象しゃんは全くその事にきじゅいていないのでちゅよねぇ…。 とても、社会人とは思えないでちゅ。
退会済みユーザー

退会済みユーザー

2019/05/19 00:59

大体、象しゃんは普段偉そうに能書きばっかりたれていまちゅから、 この程度のことはやったら出来るはじゅなので、 ぜひ、やってみちぇて欲ちいもんでちゅ。 その上で「こんなめんどくさいことするより、仕様を変えましょう」と言うのであれば、 まだ、おはなちする余地も出てくるというものでちゅ。
m.ts10806

2019/05/19 01:12

配列$aがどのような仕様で出てくるか分かってる人、質問者以外にいますか? いいからもう絡んでこないでください。
退会済みユーザー

退会済みユーザー

2019/05/19 01:17

>配列$aがどのような仕様で出てくるか分かってる人、質問者以外にいますか? しょれはちゅまり、象しゃんは想像すらできない、という事でちゅね? まったく、象しゃんは視野が狭いでちゅねぇ…。
m.ts10806

2019/05/19 01:22

? なぜ想像する必要がありますか? 憶測で適当に回答したところで質問者のためにもあとから見た人のためにもなりませんよ? いい加減絡むなって言ってますがわかりませんか?
m.ts10806

2019/05/19 01:22

あと、あなたのコメントの中で質問への追記修正依頼はどこですか?
KazukiKudo

2019/05/19 01:31

激しいコメント誠にありがとうございます。 >その中も配列になる可能性も加味する必要がありませんか? >例['1', ['2',['3']]] それについては全く考慮しなくて大丈夫でございます。 >考え方は結構なのですが、そもそも最初の配列がどのように作られるのかのほうが大事で、もし可能なら配列を組み直すのではなく「生成したい形ではじめから出力する」ようにはできないのでしょうか? 仰る通りだと思いますがそれができない仕様なので質問させていただいた次第でございます。 以上、何卒よろしくお願い致します。
退会済みユーザー

退会済みユーザー

2019/05/19 01:33

>なぜ想像する必要がありますか? えっと、象しゃんは作業工しゃんだって自分で主張ちていまちゅか? 技術者は、あらゆる問題について、未知の答えをみちゅけられるから尊敬されるのでちゅ。 そうじょうりょくのない技術者なんて、そんなもの、技術者ではなくただのコーダでちゅよ。
退会済みユーザー

退会済みユーザー

2019/05/19 01:34

>あと、あなたのコメントの中で質問への追記修正依頼はどこですか? 何をいいだちたんでちゅか? 象しゃんは本当に頭がおかちいのでちゅか? 追記ちてもらうべき依頼なんか、「無い」でちゅ。 しちゅもんしゃしゃんの最初のしちゅもんで、すべて事足りていまちゅよ。 象しゃんは本当に、1から10まで仕様を決めてもらわないと何もできない底辺の作業工しゃんみたいでちゅねぇ。
m.ts10806

2019/05/19 01:39 編集

質問への追記修正依頼とは関係ないコメントはスルーで問題ないですよ。 >それができない仕様なので その前提は記載しておいてください。出てきたデータを加工するってあまり良いことではないですし、手順が増えるとそれだけ不具合が紛れ込むリスクも高まり確認項目が増えますので通常は「そのまま使えるデータを出力できないか」を模索します。 「こういうパターンもある」ような形で他にも幾つかあげておいてもらえると回答もしやすくなると思います。検証データを回答者があまり勝手に作ってしまうと憶測で要件とは離れる可能性もありますので。 また、自身がやってみたコードも追記してください。「それができない仕様」である以上はもともとのデータの仕様を知っているのは質問者さんだけで、そういう仕様があるなら尚更調べてもズバリの情報は出てきません。何かしら想像により出てきたコードで対応できないパターンがあると結局試行錯誤はご自身でする必要があるので、何かしら組んでみておく必要はあると思ってます。
退会済みユーザー

退会済みユーザー

2019/05/19 01:53

めくら象しゃんが、目の開いていないしちゅもんしゃしゃんを闇にひきじゅり込んでいる絵がまぶたの裏に浮かんでくるでちゅ。
退会済みユーザー

退会済みユーザー

2019/05/19 01:55

しかし、象しゃんはほんとうに能書きばっかりたれて、 「こんなめんどくさいことするより、仕様を変えましょう」 は、提供出来ないのでちゅね…。
退会済みユーザー

退会済みユーザー

2019/05/19 01:56

象しゃん「魔空空間に引きずりこめー!」 作業工達「イー!」
退会済みユーザー

退会済みユーザー

2019/05/19 02:00

しちゅもんしゃしゃんの問題提起は、とても良い内容なのに、 象しゃんをはぢめとする頭の固い作業工たちが分かったような顔をしてのさばっているので、 まるでしちゅもんしゃしゃんが悪者みたいになっているのは、とてもじゃんねんでちゅ。
m.ts10806

2019/05/19 02:03

looperさん 追記も修正依頼も必要ないと思うのでしたらコメントする必要ないのでは? そんなにぶちぶち言いたいならTwitterでもブログでも呟いてたら良いかと。ここは質問への追記修正依頼の場です。
退会済みユーザー

退会済みユーザー

2019/05/19 02:04

また作業工がなんかアホみたいな事言っていたでちゅ。 今、どういう時代になっているのか全く分かっていないのでちゅね、作業工のコーダしゃんたちは。 https://medaka.5ch.net/test/read.cgi/prog/1558225930/17
退会済みユーザー

退会済みユーザー

2019/05/19 02:06

こんなアッパラパーたちが、普段はteratailを見て 「teratailの質問者達、頭おかしい! 豆腐だらけ!www」 と言っているのでちゅから、それはもう、チンパンジーよりも下等なせいぶちゅにちか見えるわけないでちゅよねぇ。
退会済みユーザー

退会済みユーザー

2019/05/19 02:21

いっちょう懸命自己弁護をちていまちゅが、ちょんな事をちゅるくらいなら、 とっととしちゅもんしゃしゃんの問題の解決法を書けばいいのでちゅけどねぇ、 しゅちゅもん内容は十分に見ているはじゅなのでちゅから。https://medaka.5ch.net/test/read.cgi/prog/1558225930/25 まぁ、5chでくだをまいているだけののうなし達には、無理なんでちょうねぇ。
退会済みユーザー

退会済みユーザー

2019/05/19 02:23

今頃、象しゃんはしちゅもんしゃしゃんの問題の解決方法に頭をフル回転させているのでちょうね。 で、結局できなくて、後になって、 「私は質問内容そのものがおかしいと最初から言っているので、そんな事するわけないじゃないですか」 とか、しれーっと言い訳するのでちょうねぇ。
退会済みユーザー

退会済みユーザー

2019/05/19 02:25

https://medaka.5ch.net/test/read.cgi/prog/1558225930/26 それをくしょコードにしないのが技術力というのもであって、 それを実現できるのが技術者なんでちゅけどねぇ…。 象しゃんはしょもしょも、トライする事しゅらしないって言うんでちゅよねぇ…。 本当に仕事ちているんでちょうか…?
退会済みユーザー

退会済みユーザー

2019/05/19 02:30

https://medaka.5ch.net/test/read.cgi/prog/1558225930/28 誰もそんな事おもっていないでちゅが、ほんとうに5chで息巻いているチンパンジー達のもうしょうは、 とどまるところを知らないでちゅねぇ。 だからそんな事をしゅるならとっとと解決法を書けばいいと思うのでちゅけど。 しちゅもん内容は十分に見ているのでちゅから。 ほんと、5chでteratailを笑い者にしているおバカさんたちは自分に対してだけはあまいでちゅねぇ。
退会済みユーザー

退会済みユーザー

2019/05/19 02:33

基本的に5chの「teratailもりあがっtail?」という低俗なスレッドで書き込みしている人達は、 本当に知的レベルが低いお猿さんばっかりでちゅからねぇ。 あんなんで、よくもまぁteratailのしちゅもんしゃしゃん達を笑い者にできるもんだと、ずーっと思っているでちゅ。 睾丸無知なんでちょうね。かはんちんで物事を考えている人達でちゅよ。
退会済みユーザー

退会済みユーザー

2019/05/19 02:38

今頃、象しゃんはしちゅもんしゃしゃんの問題の解決方法に頭をフル回転させているのでちょうね。 で、結局できなくて、後になって、 「私は質問内容そのものがおかしいと最初から言っているので、そんな事するわけないじゃないですか」 とか、しれーっと言い訳するのでちょうねぇ。 二回目
KazukiKudo

2019/05/19 17:28

mts10806様 すごくシンプルに質問で書かせていただいた配列$aを$bの形に生成する方法またはコードをご教示いただければ私としては大変満足です。 万が一想定外の不具合があったとしてもそれは当然私の責任なので回答者様は何も気にする必要はございません。 そもそも私はどんな仕様にも耐えられる完璧なコードや回答を求めているわけではありません。 正直何も考えずにコピペでそのまま使えるコードをいただけたら嬉しいですが、自分では気付けなかったほんの些細なヒントや情報だけでも得られれば満足ですし感謝致します。 大変恐れ入りますが、これ以上「質問に対する質問」はお答えできません。 まだ「質問の意味が分からない」「質問内容が納得いかない」「質問者が気に食わない」等思ってらっしゃるなら、何もコメントせずに私のことは忘れてください。 何でも結構ですので、「質問に対するご回答」をいただけたら幸いです。 何卒よろしくお願い致します。
guest

回答5

0

初心者ですが、再帰と eval を使わないという条件でやってみました。

Wandbox

PHP

1<?php 2$a = [ 3 ['1', '2'], 4 ['1', '2'], 5 ['1', '3'], 6 ['4', '5', '6'], 7 ['4', '7'] 8]; 9$output = []; 10foreach ($a as $row) { 11 $l = &$output; 12 foreach ($row as $item) { 13 if (!array_key_exists($item, $l)) { 14 $l[$item] = []; 15 } 16 $l = &$l[$item]; 17 } 18} 19print_r($output);

投稿2019/05/20 10:21

Zuishin

総合スコア28662

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/05/20 11:37

PHPer は参照渡しが理解できないので書いてはダメです!w
Zuishin

2019/05/20 12:07

参照まで封じられるとなると、ノードクラスを作って木を構築して配列にコンバートとか、XML や JSON……いや、HTML が使えるかもしれませんね。HTML で木構造を構築するのは PHP の得意分野なはずです。多分。
退会済みユーザー

退会済みユーザー

2019/05/20 12:15

www
退会済みユーザー

退会済みユーザー

2019/05/20 12:35

ぽっくんのコードよりはずいしんしゃんのコードのほうが簡潔でちゅが、 ずいしんしゃんのコードは利用すべきケースを想定出来ていないでちゅね。 そんな事では、ダメでちゅ。
Zuishin

2019/05/20 12:38

ケースは質問で与えられています。私のコードは要求仕様通りです。あなたのコードはそうではありません。 > すごくシンプルに質問で書かせていただいた配列$aを$bの形に生成する方法またはコードをご教示いただければ私としては大変満足です。
退会済みユーザー

退会済みユーザー

2019/05/20 12:39

>私のコードは要求仕様通りです。 ほらー、すぐそうやって作業工みたいな事言うでちゅ。
退会済みユーザー

退会済みユーザー

2019/05/20 12:40

ずいしんしゃんは、そのコードを一体何に使うちゅもりなのでちゅか。
退会済みユーザー

退会済みユーザー

2019/05/20 12:40

コードでオナニーしまちゅか?
Zuishin

2019/05/20 12:41

使いませんがそれが何か?
退会済みユーザー

退会済みユーザー

2019/05/20 12:43 編集

何にも使えないコードを書いて、何の意味があるのでちゅか? オナニーでちゅか?
Zuishin

2019/05/20 12:44

質問に答えたらオナニーになるのですか? 質問に答えていない回答がオナニーでは?
退会済みユーザー

退会済みユーザー

2019/05/20 12:45

質問に答えていない回答なんて、無いでちゅねぇ。
Zuishin

2019/05/20 12:47

あなたの回答が二つとも答えていませんね。要求仕様を満たしたコードを何に使うのかは私ではなく質問者に聞いて下さい。
退会済みユーザー

退会済みユーザー

2019/05/20 12:48

>あなたの回答が二つとも答えていませんね 2つって何でちゅか?
Zuishin

2019/05/20 12:49

数が多すぎましたか? 手の指は十本あるので頑張ってください。
KazukiKudo

2019/05/20 12:49

ご回答ありがとうございます。 te2ji様の回答を確認している間に行き違いでlooper様の回答が投稿されておりました。 ここまで丁寧に書いていただけるとは思ってみませんでした。誠にありがとうございます。 ぱっと見たところちょっと私の理解力ではすぐには理解できないのですが、じっくり確認させていただいて勉強させていただきます。 本当にありがとうございます。
Zuishin

2019/05/20 12:50

この回答を書いたのは私です。
退会済みユーザー

退会済みユーザー

2019/05/20 12:53

>数が多すぎましたか? >手の指は十本あるので頑張ってください。 うーわ、ずいしんしゃんが、なんか意味が分からない事を言い始めたでちゅ。 怒っているのでちょうか?
退会済みユーザー

退会済みユーザー

2019/05/20 12:54

>この回答を書いたのは私です。 ずいしんしゃんの回答は、丁寧には書いてないと思いまちゅけど…。
Zuishin

2019/05/20 12:54

違いましたか。 二つというのはあなたの書いた回答の数のことです。 わからなかったのはここですか?
退会済みユーザー

退会済みユーザー

2019/05/20 12:58 編集

なるほどー、ずいしんしゃんは主語をまんじょくに使えない人だったのでちゅね。 たまにいまちゅね、そういう人。 ぢぶんの中の世界がしゅべてだと思っている人で、アスペルガーの人に多いみたいでちゅね。
退会済みユーザー

退会済みユーザー

2019/05/20 12:58

んと、求められたことをそのまま答えるだけの人も、アスペルガーに多いでちゅよ。 普通の人は、相手の立場に立って答えるものでちゅ。
Zuishin

2019/05/20 12:59

「あなたの回答が」が主語です。
退会済みユーザー

退会済みユーザー

2019/05/20 13:02

いや、それはさっきずいしんしゃんが説明したのでわかりまちたってばw
Zuishin

2019/05/20 13:02

わかったと言う人ほどわかってないものです。
退会済みユーザー

退会済みユーザー

2019/05/20 13:04

あのね、ずいしんしゃん、 この質問は、象しゃんが5/19に「仕様がおかしい、仕様を変えろ」って連呼した時に、 意味合いと焦点が変わったんちゅよ。 この質問の焦点は「どうししてそんな事をしなければならないのか?」なのでちゅ。 なのに、何にもちゅかえないコードを書いて、どうしゅるんでしゅか。
退会済みユーザー

退会済みユーザー

2019/05/20 13:05

まったくもぅ、ずいしんしゃんはもっと大人だと思っていたのにでちゅねぇ…。
Zuishin

2019/05/20 13:05

繰り返しますが、何に使うのかは私ではなく質問者に聞いてください。 「オナニーにつかうんでちゅか?」って。
退会済みユーザー

退会済みユーザー

2019/05/20 13:08

オナニーコード書いたのはずいしんしゃんなのでねぇ…。
退会済みユーザー

退会済みユーザー

2019/05/20 13:08

というか、ずいしんしゃんは、一体何がしたかったんでちゅか?
Zuishin

2019/05/20 13:08

私の書いたのは仕様通りです。あなたの書いたのは誰も要求していないオナニーコードです。
退会済みユーザー

退会済みユーザー

2019/05/20 13:09

ぽっくんはずっと、「仕様がおかしい、仕様を変えろ」って言っている象しゃんに 「こういうケース、普通にあるでちょ」って言いたかったから答えたんでちゅけどね、 ずいしんしゃんは、何がちたかったんでちゅか?
退会済みユーザー

退会済みユーザー

2019/05/20 13:09

ぽっくんのコードはちゅかえまちゅからねぇ。
退会済みユーザー

退会済みユーザー

2019/05/20 13:10

>私の書いたのは仕様通りです。 こういう事言って、全然仕事出来ない人、いっぱい見た事、ありまぁちゅ。
Zuishin

2019/05/20 13:11

奇遇ですね。仕様と全く違うものを作って来て自己弁護する仕事できない人、私も見たことがあります。
退会済みユーザー

退会済みユーザー

2019/05/20 13:14

うふふふ、ずいしんしゃん、 ずいしんしゃんの書いたコードは何にも使えない事をわしゅれていまちゅねぇ…。 そんな状況では、そんな言い分、通らないでちゅよ。
退会済みユーザー

退会済みユーザー

2019/05/20 13:15

で、ずいしんしゃんは一体何がしたかったんでちゅか?
Zuishin

2019/05/20 13:15

要求仕様通りなので何に使うのかはクライアントに聞いてください。
退会済みユーザー

退会済みユーザー

2019/05/20 13:15

何度もいいまちゅが、ぽっくんは具体的な利用ケースをもって、 象しゃんに説明ちたかっただけでちゅが。
退会済みユーザー

退会済みユーザー

2019/05/20 13:15

>要求仕様通りなので何に使うのかはクライアントに聞いてください。 でーたーw
Zuishin

2019/05/20 13:15

クライアントじゃなくて質問者でしたね。
退会済みユーザー

退会済みユーザー

2019/05/20 13:16

それはどっちでもいいでちゅけど、 でーたーw
退会済みユーザー

退会済みユーザー

2019/05/20 13:17

ずいしんしゃんを雇った人は苦労しそうでちゅ。 「仕様どおりにつくりましたが、何か?」ってずっと言っていそうでちゅ。
Zuishin

2019/05/20 13:18

仕様通りに作らないものを持ってくる人よりはマシかと。
退会済みユーザー

退会済みユーザー

2019/05/20 13:21

ごめんなしゃいねー、ぽっくんは今、仕様を決める側の人間なので、 ずいしんしゃんみたいななんにも考えじゅに「仕様どおりにつくりました、何か?」って言ってくる人は ロボしゃんにしか見えないのでちゅよねぇ。
Zuishin

2019/05/20 13:21

仕様を勝手に決めてるのは見ればわかります。
退会済みユーザー

退会済みユーザー

2019/05/20 13:22

勝手に決めてるって、そりゃ、それを任されておりまちゅので。
Zuishin

2019/05/20 13:23

普通、要求仕様がおかしいと思ったら、成果物を提出する前に話をして合意してから変えるんですよ。
退会済みユーザー

退会済みユーザー

2019/05/20 13:23

ずいしんしゃんは、上から降りてくる仕様どおりに作るしかなくて 大変そうでちゅねぇ。 それを持ってこられる方も、とても大変そうに見えまちゅけど。
退会済みユーザー

退会済みユーザー

2019/05/20 13:24

>普通、要求仕様がおかしいと思ったら、成果物を提出する前に話をして合意してから変えるんですよ。 ずいしんしゃん、質問者さんと話あってないじゃないでちゅか。 何言ってるんでちゅか。
退会済みユーザー

退会済みユーザー

2019/05/20 13:24

何度もいいまちゅが、ぽっくんは具体的な利用ケースをもって、 象しゃんに説明ちたかっただけでちゅからね。
退会済みユーザー

退会済みユーザー

2019/05/20 13:25

でも、ずいしんしゃんは、自分の満足のコードを書いただけでちゅよねぇ。
退会済みユーザー

退会済みユーザー

2019/05/20 13:26

ずいしんしゃんは、何に使うか分からないコードなのに、 要求仕様がおかしいと思ってないんでしゅよねぇ。
Zuishin

2019/05/20 13:26

私が書いたのは求められたものです。 あなたが書いたのは自分の都合によるものです。これを自己満足と言います。他に誰も満足しません。
退会済みユーザー

退会済みユーザー

2019/05/20 13:27

作業工じゃないでちゅか、それ。
退会済みユーザー

退会済みユーザー

2019/05/20 13:27

>私が書いたのは求められたものです 求められたものが、何に使うかわからないコードなのに、 何の疑問も持たずに書いた、 と、言っていまちゅね?
Zuishin

2019/05/20 13:29

確認は何度もされています。
退会済みユーザー

退会済みユーザー

2019/05/20 13:29

>あなたが書いたのは自分の都合によるものです。 寝ぼけていまちゅねぇ。 何度もいいまちゅが、ぽっくんは具体的な利用ケースをもって、 象しゃんに説明ちたかっただけでちゅからね。 象しゃんが質問者さんに「仕様がおかしい、仕様を変えろ」というから、 ぽっっくんは質問者さんの質問はおかしくない、こういうケースがある と、提示しているのでちゅ。
Zuishin

2019/05/20 13:29

> すごくシンプルに質問で書かせていただいた配列$aを$bの形に生成する方法またはコードをご教示いただければ私としては大変満足です。
退会済みユーザー

退会済みユーザー

2019/05/20 13:29

> 確認は何度もされています。 何の? ずいしんしゃん、主語は省かないでくだちゃい。 あなたの心の中はあなたにしか分からないでちゅ。
Zuishin

2019/05/20 13:30

> と、提示しているのでちゅ。 あなた以外誰も望んでいない作業ですね。
Zuishin

2019/05/20 13:30

「確認は」が主語です。
退会済みユーザー

退会済みユーザー

2019/05/20 13:32

>「確認は」が主語です。 あたまおかちいのでちゅか? 「〇〇の確認」が主語でちゅ。
Zuishin

2019/05/20 13:33

「でちゅ」って言ってる人に日本語を教えるのは難しいですね。
退会済みユーザー

退会済みユーザー

2019/05/20 13:33

> あなた以外誰も望んでいない作業ですね。 んーと、言われたものを言われたとおりに作って出すことが仕事だと思っているロボさんの所望の事は ぽっくんは知らないでちゅ。
Zuishin

2019/05/20 13:34

だれも望んでいないコードでオナニーしたんでしょ。
退会済みユーザー

退会済みユーザー

2019/05/20 13:35

>「でちゅ」って言ってる人に日本語を教えるのは難しいですね。 そうでちゅかー。 しょれはまた、日本語能力が低いようでちゅねぇ。
Zuishin

2019/05/20 13:36

少し高めてもらえますか? 読みにくいので。
退会済みユーザー

退会済みユーザー

2019/05/20 13:40

ごめんなしゃい、ずいしんしゃん程度の人に「高」のスイッチ入れる気には なれないでちゅ。 だって、 「確認は何度もされています。」で意味がわかると思っているんでちょう?
退会済みユーザー

退会済みユーザー

2019/05/20 13:41

しょれに、何の役に立つのか全くわからないコードを書いちゃう人でちゅよ? しょんな人、本気で相手できまちゅか?
退会済みユーザー

退会済みユーザー

2019/05/20 13:41

>読みにくいので。
退会済みユーザー

退会済みユーザー

2019/05/20 13:42

読解力の勉強になってよかったじゃないでちゅか。
Zuishin

2019/05/20 13:43

幼児と話しても読解力が高まるとは思えないんですよね。
退会済みユーザー

退会済みユーザー

2019/05/20 13:45

そうでちゅか? ロボの相手にはちょうど良いと思いまちゅけど。
退会済みユーザー

退会済みユーザー

2019/05/20 13:46

で、何の役に立つかわからないコードを書いた感想は、どうでちたか? 興奮ちまちたか?
退会済みユーザー

退会済みユーザー

2019/05/20 13:47

ちょっと、ぽっくんにはそういう性癖はないので、 よく分からないのでちゅよ。
Zuishin

2019/05/20 13:47

特に興奮はしませんが、あなたは興奮するんですか?
退会済みユーザー

退会済みユーザー

2019/05/20 13:49

>ちょっと、ぽっくんにはそういう性癖はないので、
退会済みユーザー

退会済みユーザー

2019/05/20 13:49

ずいしんしゃんは、ねぼけていまちゅねぇ。 眠いんでちゅか?
Zuishin

2019/05/20 13:49

そういう発想が出るのは……まあそういうことにしておきましょう。
退会済みユーザー

退会済みユーザー

2019/05/20 13:50

分からないでちゅねぇ。 興奮するわけでもなく、一体何がちたくて ずいしんしゃんは、何の役に立つのか全く分からないコードを書いたんでちゅうか? 全く分からないでちゅねぇ。
Zuishin

2019/05/20 13:51

やっぱり興奮したんでしょ? 何の役にも立たない誰も求めてないコードで。
退会済みユーザー

退会済みユーザー

2019/05/20 13:51

>そういう発想が出るのは……まあそういうことにしておきましょう。 お、なんか、5chねらーみたいな事いいだちたでちゅ。 実は、ずいしんしゃんも5chで書き込みちていたでちゅか?
退会済みユーザー

退会済みユーザー

2019/05/20 13:51

>やっぱり興奮したんでしょ? >何の役にも立たない誰も求めてないコードで。 でーたー! 煽り方がてつじしゃんと、全く一緒でちゅw おもちろいでちゅw
退会済みユーザー

退会済みユーザー

2019/05/20 13:53

ずいしんしゃんって、そんなキャラでちたっけ? おもちろいでちゅw
退会済みユーザー

退会済みユーザー

2019/05/20 13:57 編集

何の役にも立たないコードを書いたのは、 何の役に立つかわからないコードを書いたずいしんしゃんの方がよっぽど近いと思いまちゅ。 何度もいいまちゅが、ぽっくんは具体的な利用ケースをもって、 象しゃんに説明ちたかっただけでちゅから、少なくとも意味は、あるのでちゅよ。
Zuishin

2019/05/20 13:57

説明したかったのはあなたで、誰もそれを聞きたくないんじゃないですか? 確認してみたらどうです?
退会済みユーザー

退会済みユーザー

2019/05/20 13:59

>確認してみたらどうです? ほう、これは面白い事をいいはじめたでちゅ。 誰に、でちゅか?
Zuishin

2019/05/20 14:00

あなたの説明を求めているとあなたが思う人にです。
退会済みユーザー

退会済みユーザー

2019/05/20 14:02

ねぼけていまちゅねぇ。 あなたが「確認してみたらどうです?」と言い出ちたんだから、 あなたの想像した人を言いなちゃいよ。いくぢなし。
Zuishin

2019/05/20 14:03

あなたの説明を求めている人はいないと思いますね。
退会済みユーザー

退会済みユーザー

2019/05/20 14:03

ぽっくんの知っているずいしんしゃんは、 そんな臆病者では無かったはずでしゅよ。
Zuishin

2019/05/20 14:03

一人でもいると思うなら確認してみたらどうですか? ということです。
退会済みユーザー

退会済みユーザー

2019/05/20 14:03

>確認してみたらどうです? >あなたの説明を求めている人はいないと思いますね。 バカなのか?
退会済みユーザー

退会済みユーザー

2019/05/20 14:04

>一人でもいると思うなら確認してみたらどうですか? >ということです。 本物のバカなのか?
Zuishin

2019/05/20 14:05

確認しないのですか? 誰も求めていない説明をしたことを確認するのが怖いのですか?
退会済みユーザー

退会済みユーザー

2019/05/20 14:06

象しゃんが「仕様がおかしい、仕様をかえろ」というから ぽっくんは具体的な利用ケースをもって、 象しゃんに説明ちたかったので説明ちたのだが、 象しゃんが、その説明を聞きたがるかどうかは、象しゃんの人間性次第に決まってるじゃないでちゅか。 ずいしんしゃんって、こんな論理が破綻ちているロボでちたっけ?
Zuishin

2019/05/20 14:07

では、説明で満足するのはあなただけですね。 つまり、自己満足ですね。
退会済みユーザー

退会済みユーザー

2019/05/20 14:08

象しゃんが両耳をふさいで「あーあーあーあー聞こえないー」って言うかもしれないじゃないでちゅか。 で、しょしたらずいしんしゃんは誰も求めてないからお前が悪いって言うつもりでちゅか? バカなのか?
退会済みユーザー

退会済みユーザー

2019/05/20 14:08 編集

>では、説明で満足するのはあなただけですね。 >つまり、自己満足ですね。
退会済みユーザー

退会済みユーザー

2019/05/20 14:08

うわぁっ…。 バカだったし…。
Zuishin

2019/05/20 14:09

誰も求めていない説明、誰も求めていない回答で興奮したんでしょう?
退会済みユーザー

退会済みユーザー

2019/05/20 14:10

がっかりだなぁ、ずいしんしゃんはもっとまともな思考力がある人だと思ってたんだけどなぁ…。
退会済みユーザー

退会済みユーザー

2019/05/20 14:10

ずいしんしゃん、それ、さぶいでしゅ。 そんな的外れな煽りは、てつじしゃんにでもやらしといた方がいいでちゅよ。 じぇんじぇん的確じゃないので。
退会済みユーザー

退会済みユーザー

2019/05/20 14:11

もう、とっくにその流れ終わってるのに、まだやり続けるんだからなぁ…。 会話のせんしゅも全く無い…。
Zuishin

2019/05/20 14:13

会話などしているつもりはありませんが?
退会済みユーザー

退会済みユーザー

2019/05/20 14:14

しょうでしゅかー。しょれはよかったでちゅねー。
退会済みユーザー

退会済みユーザー

2019/05/20 14:14

ましゃか、ずいしんしゃんがここまでバカだとは思わなかったでちゅよ…。 盲点でちた。
退会済みユーザー

退会済みユーザー

2019/05/20 14:16

しょせんは、言われた事を言われたとおりにやっているだけの作業工コーダしゃんなので、 論理的な話は無理だったみたいでちゅねぇ…。
Zuishin

2019/05/20 14:18

早く言われた通りのことができるようになれればいいですね。
Zuishin

2019/05/20 14:18

主語を書きましょうか? 「あなたが」です。
退会済みユーザー

退会済みユーザー

2019/05/20 14:18

ずいしんしゃんはきっと、明日も明後日もその次も、 何に使うのか分からないコードをせっせと書きつづけるのでちゅねぇ…。 がんばってくだしゃい。
退会済みユーザー

退会済みユーザー

2019/05/20 14:20 編集

あー。またずいしんしゃんがわけのわからない強がりを書いていまちゅねぇ…。 まぁ、いいんじゃないでちょうか…。ずいしんしゃんにはそれがお似合いみたいでちゅ。
guest

0

おちゅかれしゃまでしゅー。
初めに、ちょっと方向修正しまちゅ。

えっと、今回紹介しゅるのは再帰をしないやり方でちゅ。
たまたま引っ張り出したコードが、再帰をちゅかっていないコードでちた。
ぽっくんのコードは何度何度もリファクタをちているのでいろんなバージョンがあるのでちゅ。
お見せしゅるのはかなり古いコードでちゅね。

まじゅ、このコードが出来上がった背景を説明するのでちゅが、
これは、ぽっくんが使っている汎用バリデーターの機能の一部なのでちゅ。

ぽっくんが昔やっていた仕事で、こういう要件がお客しゃんから上がってきたのでちゅ。

イメージ説明

しょの時の設計者はとにかく「あれも出来ませんこれも出来ません」と言って
お客さんからの要望をかたっぱしから断ってしまう人だったのでちゅよ。

しょれでぽっくんはお客しゃんが可愛そうだったので、
こういう要望を簡単に実現できる、どんな要望が来ても簡単に答える事の出来るバリデーターをちゅくろうと思ったのでちゅね。

ぽっくんが考えた仕様は、

PHP

1$validator = [ 2 "hoge" => ["type" => "text", "min" => 0, "max" => 32, "required" => true], 3 , "test_%_%" => ["type" => "text", "min" => 5, "max" => 12, "required" => true], 4];

みたいなバリデーション定義をしゅると、name: test__ について、ルール通りのバリデーションをちてくれるものでちゅ。

プログラムで処理するには、当然こういうリクエストは

PHP

1$_POST = [ 2 "test_1_2" => "hoge" 3 , "test_1_2" => "hage" 4 , "test_1_3" => "baka" 5 , "test_4_5_6" => "otankonasu" 6 , "test_4_7" => "kutabare" 7];

こうなってくれていたほうがfoeachで回せて楽ちんでちゅよね。

Array ( [1] => Array ( [2] => hage [3] => baka ) [4] => Array ( [5] => Array ( [6] => otankonasu ) [7] => kutabare ) )

だから実装したのでちゅ。

で、これが第2期だったか第3期だったかのコードを切り出したものでちゅ。
(多分、動くでちゅ。)

PHP

1<?php 2function getRequestMultiArray($prefix, $posts) 3{ 4 $reqArray = array(); 5 foreach ($posts as $key => $req) 6 { 7 if (!preg_match("/\A{$prefix}_(\d+_)*\d+\z/u", $key)){ continue; } 8 $key = str_replace("{$prefix}_", "", $key); 9 $serial = explode("_", $key); 10 $cArray = &$reqArray; 11 for ($i = 0; $i < count($serial); $i++) 12 { 13 if ($i === count($serial) - 1) 14 { 15 $cArray[$serial[$i]] = $req; 16 } 17 else 18 { 19 if (!isset($cArray[$serial[$i]])) 20 { 21 $cArray[$serial[$i]] = array(); 22 } 23 } 24 $cArray = &$cArray[$serial[$i]]; 25 } 26 unset($cArray); 27 } 28 return $reqArray; 29} 30 31////////////////////////////////////////////////////////// 32 33$posts = [ 34 "test_1_2" => "hoge" 35 , "test_1_2" => "hage" 36 , "test_1_3" => "baka" 37 , "test_4_5_6" => "otankonasu" 38 , "test_4_7" => "kutabare" 39]; 40$prefix = "test"; 41$posts[$prefix] = getRequestMultiArray($prefix, $posts); 42 43print_r($posts[$prefix]);

こんな感じの配列がかえりまちゅ。

Array ( [1] => Array ( [2] => hage [3] => baka ) [4] => Array ( [5] => Array ( [6] => otankonasu ) [7] => kutabare ) )

結局ね、プログラムって社会の問題を解決するためにあるのでちゅよね。

なのに、コードを書く事こそが仕事だと思っているコーダさんたちは「そんなの馬鹿げてる、仕様を変えるべきだ」って言うんでちゅよねぇ。

象しゃんは一生懸命、上流を変えろって言ってまちたよねぇ。
いわもとしゃんって人も、仕様がおかちい仕様を変えろって言ってまちた。
動的に生成された複数の要素に、生成されたタイミングで処理を行いたい

本当に、頭がおかちいと思うでちゅ。コードが書けるのが偉いんじゃない、問題を解決できるのが偉いのでちゅよねぇ。

なお、今ぽっくんの使っているバリデーターのコードは遥かに洗練されていまちゅが、現状は社外秘になっているので内緒でちゅ。

投稿2019/05/20 12:24

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/05/20 12:34

うーん。今さら Zuishin さんのコード劣化させたの記載されても。。。 再帰、どうなったんですか?
退会済みユーザー

退会済みユーザー

2019/05/20 12:36 編集

劣化していると思っているなら、てつじしゃんはただの作業工という事でちゅよ。
退会済みユーザー

退会済みユーザー

2019/05/20 12:37

www
退会済みユーザー

退会済みユーザー

2019/05/20 12:39

あれま、本当に言っている意味がわからなかったみたいでちゅねぇ。
退会済みユーザー

退会済みユーザー

2019/05/20 12:45

この質問の要件に一切関係ない箇所はただ冗長なだけだよ。 コピペな人しかやらんわ。仕事なら完全にアウト。 コピペより、再帰書こうよ。
KazukiKudo

2019/05/20 12:50

ご回答ありがとうございます。 te2ji様の回答を確認している間に行き違いでlooper様の回答が投稿されておりました。 ここまで丁寧に書いていただけるとは思ってみませんでした。誠にありがとうございます。 ぱっと見たところちょっと私の理解力ではすぐには理解できないのですが、じっくり確認させていただいて勉強させていただきます。 本当にありがとうございます。
KazukiKudo

2019/05/20 12:52

名前間違えました。hentaiman様でした。
退会済みユーザー

退会済みユーザー

2019/05/20 12:55

かまわないでちゅよ。どうしぇ、古いコードでちゅ。
退会済みユーザー

退会済みユーザー

2019/05/20 12:56

>この質問の要件に一切関係ない箇所はただ冗長なだけだよ。 しょんな事だからてつじしゃんはキモオタって言われるんでちゅよ。
退会済みユーザー

退会済みユーザー

2019/05/20 12:59

結局再帰も書けないのか。。。 何が書けるの?
退会済みユーザー

退会済みユーザー

2019/05/20 13:07

てつじしゃんて、ほんと5chねらーでしゅねぇ…。 そんな煽りに乗るのは5chのおばかしゃんたちくらいでちゅよ。
退会済みユーザー

退会済みユーザー

2019/05/20 13:09

あぁ、5ch に書くことぐらいはできるんですね。 理解しました。
退会済みユーザー

退会済みユーザー

2019/05/20 13:12

>てつじしゃんて、ほんと5chねらーでしゅねぇ…。 >そんな煽りに乗るのは5chのおばかしゃんたちくらいでちゅよ。 >あぁ、5ch に書くことぐらいはできるんですね。 うわぁ… 文章がまったく繋がっていないでちゅ…。 論理構造が破綻ちていまちゅ…。
退会済みユーザー

退会済みユーザー

2019/05/20 13:14

前後ぐらい読めるようになろうよ。。。 まぁいいや。再帰は書けないのね?
退会済みユーザー

退会済みユーザー

2019/05/20 13:15

もったいぶってたから気になったけど、もうイイやw
退会済みユーザー

退会済みユーザー

2019/05/20 13:19

てつじしゃんはほんと、何言ってるかわからないでちゅねぇ。
退会済みユーザー

退会済みユーザー

2019/05/20 13:37

要約: 「再帰は書けないのね?」「もうイイやw」
退会済みユーザー

退会済みユーザー

2019/05/20 13:43

てつじしゃんはほんと、何言ってるかわからないでちゅねぇ。
退会済みユーザー

退会済みユーザー

2019/05/20 13:44

たぶんなんでちゅけど、てつじしゃんは再帰が書けないので、 どうしても再帰が見てみたいと言っていまちゅか?
退会済みユーザー

退会済みユーザー

2019/05/20 13:48

入力仕様が明確になってないモンに再帰で回答するって言ってたんで気になったけど、考慮してなさそうなんで、見る価値がなくなりました。
退会済みユーザー

退会済みユーザー

2019/05/20 14:13

てつじしゃんはほんと、何がちたいのか全くわからない人でちゅねぇ…。
退会済みユーザー

退会済みユーザー

2019/05/20 14:15

わざわざ eval で回答までして待ったのに残念です^^;
guest

0

ベストアンサー

<?php $tabemono=[ ['1', '2'], ['1', '2'], ['1', '3'], ['4', '5', '6'], ['4', '7'] ]; $dekiagari=[]; foreach($tabemono as $row){ $dekiagari = shokaki($row, $dekiagari); } print_r($dekiagari); function shokaki($input, $default=[]){ $unchi=$default; $k = array_shift($input); if(is_null($k))return []; if(isset($unchi[$k])){ $unchi[$k] = shokaki($input, $unchi[$k]); }else{ if(empty($input)){ $unchi[$k] = []; }else{ $unchi[$k] = shokaki($input); } } return $unchi; }

投稿2019/05/19 20:21

hentaiman

総合スコア6426

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/05/20 11:38

データに null が入ると、配列が壊れます。 $k = array_shift($input); if(is_null($k))return []; を見直す必要があるかと。
hentaiman

2021/05/07 06:32 編集

そもそも私はどんな仕様にも耐えられる完璧なコードや回答を求めているわけではありません って書いてあったので。
退会済みユーザー

退会済みユーザー

2019/05/20 12:07

あぁ、修正するつもりは無いってことですね。 理解しました。
hentaiman

2021/05/07 06:32 編集

なにを厭味ったらしく言ってるの?なにを怒ってるの?間違っていると思うなら訂正してくれればいいと思うよ?
退会済みユーザー

退会済みユーザー

2019/05/20 12:15

いや、オレじゃなくて looper さんが書いてくれると思うよ。
hentaiman

2019/05/20 12:20

え?なんで????指摘した人がコード書いてくれたらいいのになんで関係ない回答者が出てくるの? 回答にあるコードが間違っていて、そのコメントで正しいコードで訂正してくれたら他の人も参考になるじゃん? なにしたいのかよくわかんない
退会済みユーザー

退会済みユーザー

2019/05/20 12:30

てちゅじしゃんにもう一回言いまちゅが、 オウンゴールしそうな勢いで明後日の方向に突然ボールを蹴られても、 ぽっくんは知らないでちゅからね。
退会済みユーザー

退会済みユーザー

2019/05/20 12:34

あぁ、修正するつもりは無いってことですね。 理解しました。
KazukiKudo

2019/05/20 12:46

確認遅くなりすみません。ご回答誠にありがとうございます。 やりたかったことが実現できました。 ぱっと見た感じも私の理解力でも直感的にわかりやすくて素晴らしいと思いました。(変数名は変えさせていただきますが。。) >そもそも私はどんな仕様にも耐えられる完璧なコードや回答を求めているわけではありません 私のこの発言が語弊があるかもしれませんが、例外的な処理などを想定するのは当たり前ですが、そこまで回答者様に考えていただくのはおこがましと思いこう書かせていただきました。 そもそも回答をいただけるだけでもありがたいので、そこから先の検証は当然自分の責任になりますので。
hentaiman

2019/05/20 12:52

うん。他の回答のコメントで参照渡し分からないと書いてる人いるけど、使ってればいずれ誰だってわかるレベルのものなので全く気にする事も無いです。 コード書くなら分かりやすくて修正しやすいのが一番大事だと思うし、参照渡しは極力使わない方がいいと思ってます。 クロージャ使う上でどうしても参照渡しが必要な時、フレームワークの作法に則ってコードを書いた時にリターンが希望のものとは違うけど引数に渡した変数にも手を加えたい、そんな時に参照渡しを使えばいいと思ってます。
KazukiKudo

2019/05/20 15:50

承知致しました。ご丁寧にありがとうございます。 核となる部分で躓いてたので、お陰様で一気に進むことができました。本当にありがとうございます。 他の方々もたくさんのコメント誠にありがとうございました。 言い争いみたいになってるところも多々ありますが、私からすればその議論を見るだけでも良い刺激になりましたし気付きや考えさせられることもありました。もっと精進致します。
Zuishin

2019/05/20 17:12 編集

質問者さん、私の名前を間違えています。
guest

0

うんーと、昔、再帰を使って実現したでちゅ。
かなりめんどくさかったでちゅよ。

ぢぶんでやってみまちゅか? コード見たいでちゅか?

他の大人の人たちがどんな回答ちゅるか楽ちみなのでちょっと観察するでちゅ。

投稿2019/05/18 22:53

編集2019/05/18 22:55
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/05/18 22:56

いつも初心者しゃんたちをいぢめている象しゃんとか、象しゃんとか、象しゃんがどんな回答をするのか、 とても見てみたいのでちゅ。
退会済みユーザー

退会済みユーザー

2019/05/19 00:54 編集

言われたことを言われたとおりにやっているだけの作業工コーダしゃんが、バカみたいな事を言っていたでちゅ。 https://medaka.5ch.net/test/read.cgi/prog/1558225930/4 底辺に居るコーダしゃんには、一生理解できない世界みたいでちゅねぇ…。
退会済みユーザー

退会済みユーザー

2019/05/19 01:16

また、作業工のコーダしゃんが自己弁護に必死でちゅ。 https://medaka.5ch.net/test/read.cgi/prog/1558225930/6 こういう人たちはプログラムを書くのが仕事だと思っているのでくしょの役にもたたないでちゅ。
退会済みユーザー

退会済みユーザー

2019/05/19 01:24

作業工コーダしゃんが、また寝言言っていたでちゅ。 https://medaka.5ch.net/test/read.cgi/prog/1558225930/9 > 仕事を想像でできると思ってるのか ぽっくんは「ありうる仕事を想像できないようではダメでちゅね」と言っているのでちゅけどねぇ。
退会済みユーザー

退会済みユーザー

2019/05/19 01:25

まぁ、5chでちか意見をいえじゅ、 teratailの新人しゃんたちを笑い者にしゅる事ちか出来ない社会の底辺のゴミくじゅ達に何を言ってもむだなのでちょうけどねぇ…。
退会済みユーザー

退会済みユーザー

2019/05/19 06:51

何も出来ないおばかしゃん達が、なんか言っていたでちゅ https://medaka.5ch.net/test/read.cgi/prog/1558225930/85-86 てつじしゃんと象しゃんは、もうちょっと真面目にやった方が良いとおもいまちゅけどねぇ…。 エンジニアとしての面子を保つためには…。
KazukiKudo

2019/05/19 17:09

もしよろしければそのコード貼っていただけると大変嬉しいです。解読は自分でやりますので。
guest

0

普通にやるとめんどいね^^;
あまりオススメでないけど簡単なやつ

php

1<?php 2$a = [ 3 ['1', '2'], 4 ['1', '2'], 5 ['1', '3'], 6 ['4', '5', '6'], 7 ['4', '7'] 8]; 9 10foreach($a as $arr){ 11 $tmp_str = ""; 12 foreach ($arr as $val){ 13 $tmp_str .= '['.$val.']'; 14 } 15 $tmp_str = '$result'.$tmp_str.'=[];'; 16 eval($tmp_str); 17} 18var_export($result);

投稿2019/05/19 01:13

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/05/19 01:19

あいかわらず、てつじしゃんはくしょみたいなコードを書きまちゅねぇ…。
退会済みユーザー

退会済みユーザー

2019/05/19 01:31

「再帰はオレが書く」って人がいるせいでしょ^^;
退会済みユーザー

退会済みユーザー

2019/05/19 01:36

べちゅに、てつじしゃんが再帰を書いたっていいんでちゅよ。 てつじしゃんが何を考えてどういう解決をちゅるのかが重要なのでちゅ。
退会済みユーザー

退会済みユーザー

2019/05/19 01:37

象しゃんみたいに「何を求められているのかちゅら分からない」人ばっかりだと、 質問者さんがかわいちょうだなぁー、と思っているだけでちゅ。
KazukiKudo

2019/05/19 17:11

ご回答ありがとうございます。 なるほど。evalですか。使うのはご法度みたいなことを聞いたことがあってちゃんと把握すらしてませんでした。 ご検討させていただきます。
退会済みユーザー

退会済みユーザー

2019/05/19 23:49

入力仕様が明確に提示されなかったので、スクリプトとしてはコンセプトの提示のみとなっています。 提示の例では、$val が int であることが担保できればセキュリティ上問題ないのでバリデーションを行えばよいです。 どっちかって言うと、問題は、プロジェクトとして eval の使用を許容するかどうかの判断です。気持ち悪がる人は多いかと。 ただ、再帰処理の利用も気持ち悪さはそれほど変わらないので、私が実装するなら、input 配列の仕様を再調査し、再帰を使わない愚直なパーサを記述すると思います。
退会済みユーザー

退会済みユーザー

2019/05/20 03:36 編集

書くの忘れてたw このコードだと、入力の仕様によっては配列の配下が吹っ飛ぶので気をつけてね。eval って書きたかっただけのコンセプトコードなので^^;
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.44%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問