2017-10-11 16 views
2

ネストされた配列で動作するforget()に似た、きちんとしたLaravelコレクションメソッドを使用することは可能ですか?ラーベルコレクション。ネストされたキーでforget()を使用する

ここに私が欲しいものの例があります。

私は、このようなCollectionインスタンスがあります。

enter image description here

をそして私は、私が「答えとして

$cities->forget('cities', 2) // (second parameter is not real, it's a "nested level" and I took it from my head as example of what I want) 

と同様に(すべての項目が同一である)coordinates列を削除したいですいくつかの既存のCollectionメソッドまたはCollectionマクロを受け取りたい場合は、1行で動作します。

unset()map()と他のすべて「は、2つ以上のラインオプション」

は、私が今持っているもの:)

+0

を使用して、それからcoordinatesを削除してみてください。他の方法unsetが最も速いです –

+0

@BartłomiejSobieszek答えをありがとうございます。はい、私はCollectionsマクロについて知っていますが、もっと明白な解決策があるかもしれません。私はきれいで小さなパイプラインが好きです。 –

答えて

1

私はそれが動作するかどうかわかりませんが、私はしようとする利用flatten()をお勧めよりも、より良いではありませんあなたの多次元コレクションを単一のコレクションに変換して、あなたはそれをこのようにしたい場合は、laravelでコレクションを拡張することができforget()

$cities->flatten()->forget('coordinates') 
+1

答えをありがとう、私はそれについて考えましたが、どうすれば元に戻すことができますか?:) –

+0

これを確認してくださいhttps://stackoverflow.com/questions/9419928/reverse-flatted-array-to-multidimensional助けてください:) –

+0

申し訳ありませんが、私はそうは思わない。私たちが平らにしてしまった場合、元のものを保存していない場合は元に戻す方法がありません。 –

関連する問題