調べたけどなかなかわからなかったのでご教授いただければ幸いです。
やりたいことは、
例えばこのような配列$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];
キーを動的に定義してしかも深さが未知なときどうすればよいのかわからず詰まってしまいました。
何卒アドバイスの程よろしくお願い致します。
そもそもですが、 ['1', '2']となっている時点で並列です。
['1', '2','3']のようになるだけでなく、その中も配列になる可能性も加味する必要がありませんか?
例['1', ['2',['3']]]
考え方は結構なのですが、そもそも最初の配列がどのように作られるのかのほうが大事で、もし可能なら配列を組み直すのではなく「生成したい形ではじめから出力する」ようにはできないのでしょうか?
動的で未知なら余計に、配列の加工はあまり賢明ではないと思います。
象しゃんは、あいかわらずトンチンカンな事ばっかり言っていまちゅねぇ…。
象しゃんは、仕事をちた事があるのでちょうか?
意図が分からないなら冷やかしすら無意味。邪魔です。
象しゃんは、本当に頭が固いでちゅねぇ…。
そんなんで仕事出来ているのか甚だ疑問でちゅ。
>列を組み直すのではなく「生成したい形ではじめから出力する」ようにはできないのでしょうか?
象しゃんの言っていることは、現実世界と真逆の方向なんでちゅが、
象しゃんは全くその事にきじゅいていないのでちゅよねぇ…。
とても、社会人とは思えないでちゅ。
大体、象しゃんは普段偉そうに能書きばっかりたれていまちゅから、
この程度のことはやったら出来るはじゅなので、
ぜひ、やってみちぇて欲ちいもんでちゅ。
その上で「こんなめんどくさいことするより、仕様を変えましょう」と言うのであれば、
まだ、おはなちする余地も出てくるというものでちゅ。
配列$aがどのような仕様で出てくるか分かってる人、質問者以外にいますか?
いいからもう絡んでこないでください。
>配列$aがどのような仕様で出てくるか分かってる人、質問者以外にいますか?
しょれはちゅまり、象しゃんは想像すらできない、という事でちゅね?
まったく、象しゃんは視野が狭いでちゅねぇ…。
?
なぜ想像する必要がありますか?
憶測で適当に回答したところで質問者のためにもあとから見た人のためにもなりませんよ?
いい加減絡むなって言ってますがわかりませんか?
あと、あなたのコメントの中で質問への追記修正依頼はどこですか?
激しいコメント誠にありがとうございます。
>その中も配列になる可能性も加味する必要がありませんか?
>例['1', ['2',['3']]]
それについては全く考慮しなくて大丈夫でございます。
>考え方は結構なのですが、そもそも最初の配列がどのように作られるのかのほうが大事で、もし可能なら配列を組み直すのではなく「生成したい形ではじめから出力する」ようにはできないのでしょうか?
仰る通りだと思いますがそれができない仕様なので質問させていただいた次第でございます。
以上、何卒よろしくお願い致します。
>なぜ想像する必要がありますか?
えっと、象しゃんは作業工しゃんだって自分で主張ちていまちゅか?
技術者は、あらゆる問題について、未知の答えをみちゅけられるから尊敬されるのでちゅ。
そうじょうりょくのない技術者なんて、そんなもの、技術者ではなくただのコーダでちゅよ。
>あと、あなたのコメントの中で質問への追記修正依頼はどこですか?
何をいいだちたんでちゅか? 象しゃんは本当に頭がおかちいのでちゅか?
追記ちてもらうべき依頼なんか、「無い」でちゅ。
しちゅもんしゃしゃんの最初のしちゅもんで、すべて事足りていまちゅよ。
象しゃんは本当に、1から10まで仕様を決めてもらわないと何もできない底辺の作業工しゃんみたいでちゅねぇ。
質問への追記修正依頼とは関係ないコメントはスルーで問題ないですよ。
>それができない仕様なので
その前提は記載しておいてください。出てきたデータを加工するってあまり良いことではないですし、手順が増えるとそれだけ不具合が紛れ込むリスクも高まり確認項目が増えますので通常は「そのまま使えるデータを出力できないか」を模索します。
「こういうパターンもある」ような形で他にも幾つかあげておいてもらえると回答もしやすくなると思います。検証データを回答者があまり勝手に作ってしまうと憶測で要件とは離れる可能性もありますので。
また、自身がやってみたコードも追記してください。「それができない仕様」である以上はもともとのデータの仕様を知っているのは質問者さんだけで、そういう仕様があるなら尚更調べてもズバリの情報は出てきません。何かしら想像により出てきたコードで対応できないパターンがあると結局試行錯誤はご自身でする必要があるので、何かしら組んでみておく必要はあると思ってます。
めくら象しゃんが、目の開いていないしちゅもんしゃしゃんを闇にひきじゅり込んでいる絵がまぶたの裏に浮かんでくるでちゅ。
しかし、象しゃんはほんとうに能書きばっかりたれて、
「こんなめんどくさいことするより、仕様を変えましょう」
は、提供出来ないのでちゅね…。
象しゃん「魔空空間に引きずりこめー!」
作業工達「イー!」
作業工達があいかわらず5chでくだをまいていまちゅねぇ。
https://medaka.5ch.net/test/read.cgi/prog/1558225930/13-16
しちゅもんしゃしゃんの問題提起は、とても良い内容なのに、
象しゃんをはぢめとする頭の固い作業工たちが分かったような顔をしてのさばっているので、
まるでしちゅもんしゃしゃんが悪者みたいになっているのは、とてもじゃんねんでちゅ。
looperさん
追記も修正依頼も必要ないと思うのでしたらコメントする必要ないのでは?
そんなにぶちぶち言いたいならTwitterでもブログでも呟いてたら良いかと。ここは質問への追記修正依頼の場です。
また作業工がなんかアホみたいな事言っていたでちゅ。
今、どういう時代になっているのか全く分かっていないのでちゅね、作業工のコーダしゃんたちは。
https://medaka.5ch.net/test/read.cgi/prog/1558225930/17
こんなアッパラパーたちが、普段はteratailを見て
「teratailの質問者達、頭おかしい! 豆腐だらけ!www」
と言っているのでちゅから、それはもう、チンパンジーよりも下等なせいぶちゅにちか見えるわけないでちゅよねぇ。
ちょっとマシなチンパンジーが現れたようでちゅ。
https://medaka.5ch.net/test/read.cgi/prog/1558225930/21
別のチンパンジーが意味のわからない珍説を唱えはじめたでちゅ。
https://medaka.5ch.net/test/read.cgi/prog/1558225930/24
いっちょう懸命自己弁護をちていまちゅが、ちょんな事をちゅるくらいなら、
とっととしちゅもんしゃしゃんの問題の解決法を書けばいいのでちゅけどねぇ、
しゅちゅもん内容は十分に見ているはじゅなのでちゅから。https://medaka.5ch.net/test/read.cgi/prog/1558225930/25
まぁ、5chでくだをまいているだけののうなし達には、無理なんでちょうねぇ。
今頃、象しゃんはしちゅもんしゃしゃんの問題の解決方法に頭をフル回転させているのでちょうね。
で、結局できなくて、後になって、
「私は質問内容そのものがおかしいと最初から言っているので、そんな事するわけないじゃないですか」
とか、しれーっと言い訳するのでちょうねぇ。
https://medaka.5ch.net/test/read.cgi/prog/1558225930/26
それをくしょコードにしないのが技術力というのもであって、
それを実現できるのが技術者なんでちゅけどねぇ…。
象しゃんはしょもしょも、トライする事しゅらしないって言うんでちゅよねぇ…。
本当に仕事ちているんでちょうか…?
https://medaka.5ch.net/test/read.cgi/prog/1558225930/28
誰もそんな事おもっていないでちゅが、ほんとうに5chで息巻いているチンパンジー達のもうしょうは、
とどまるところを知らないでちゅねぇ。
だからそんな事をしゅるならとっとと解決法を書けばいいと思うのでちゅけど。
しちゅもん内容は十分に見ているのでちゅから。
ほんと、5chでteratailを笑い者にしているおバカさんたちは自分に対してだけはあまいでちゅねぇ。
基本的に5chの「teratailもりあがっtail?」という低俗なスレッドで書き込みしている人達は、
本当に知的レベルが低いお猿さんばっかりでちゅからねぇ。
あんなんで、よくもまぁteratailのしちゅもんしゃしゃん達を笑い者にできるもんだと、ずーっと思っているでちゅ。
睾丸無知なんでちょうね。かはんちんで物事を考えている人達でちゅよ。
今頃、象しゃんはしちゅもんしゃしゃんの問題の解決方法に頭をフル回転させているのでちょうね。
で、結局できなくて、後になって、
「私は質問内容そのものがおかしいと最初から言っているので、そんな事するわけないじゃないですか」
とか、しれーっと言い訳するのでちょうねぇ。
二回目
mts10806様
すごくシンプルに質問で書かせていただいた配列$aを$bの形に生成する方法またはコードをご教示いただければ私としては大変満足です。
万が一想定外の不具合があったとしてもそれは当然私の責任なので回答者様は何も気にする必要はございません。
そもそも私はどんな仕様にも耐えられる完璧なコードや回答を求めているわけではありません。
正直何も考えずにコピペでそのまま使えるコードをいただけたら嬉しいですが、自分では気付けなかったほんの些細なヒントや情報だけでも得られれば満足ですし感謝致します。
大変恐れ入りますが、これ以上「質問に対する質問」はお答えできません。
まだ「質問の意味が分からない」「質問内容が納得いかない」「質問者が気に食わない」等思ってらっしゃるなら、何もコメントせずに私のことは忘れてください。
何でも結構ですので、「質問に対するご回答」をいただけたら幸いです。
何卒よろしくお願い致します。
回答5件
あなたの回答
tips
プレビュー
