カテゴリがあるjsonツリーを持っていますphpのjsonツリーの最後のレベルを取得
それぞれのカテゴリごとに最後のレベルの要素を取得したいと思います。このJSONの例
:
[
{
"category_id": "3",
"parent_id": "2",
"name": "Women",
"categories": [
{
"category_id": "11",
"parent_id": "3",
"name": "Clothing",
"categories": [
{
"category_id": "30",
"parent_id": "11",
"name": "T-shirts",
"categories": null
},
{
"category_id": "33",
"parent_id": "11",
"name": "jeans",
"categories": null
}
]
}
]
},
{
"category_id": "5",
"parent_id": "2",
"name": "Footwear ",
"categories": [
{
"category_id": "15",
"parent_id": "5",
"name": "Rings",
"categories": [
{
"category_id": "51",
"parent_id": "15",
"name": "Small Leathers",
"categories": null
}
]
},
{
"category_id": "16",
"parent_id": "5",
"name": "Bands",
"categories": [
{
"category_id": "41",
"parent_id": "16",
"name": "boots",
"categories": null
}
]
},
{
"category_id": "48",
"parent_id": "5",
"name": "Bracelets",
"categories": [
{
"category_id": "55",
"parent_id": "48",
"name": "Cocktail",
"categories": null
}
]
}
]
}
]
結果は、私が考えていたどのような配列(Tシャツ、ジーンズ、小レザー、ブーツ、カクテル)
だろうが、それを解読することです配列と検索は、すべてのカテゴリがnullの配列をフィルタリングしますが、オブジェクトが異なるレベルを持つため、これが最適なオプションかどうかはわかりません。
(英語は申し訳ありません)
まあ、そうです。最初にデコードする必要があります。 PHPはjsonが何であるかを知らない。それはちょっとしたテキストです。 array_filter()を適切な再帰コールバックとともに使用して配列をスキャンすることはできますが、配列を通過して一致するノードを見つけるために "パス"を保持する必要がある場合は、 s)。 –
今、私は別のエンドポイントで自分のツリーにマッチするためにこれを使用しているので、私はパスを保持しませんが、フィルタを実行するのがベストプラクティスか、再帰関数を使用する方が良いかどうかはわかりませんnullフィールドをasuming – Saikios
これは有効なJSONではないので、答えをテストするために誰が問題を解決しようとしているのか分かりません。 – AbraCadaver