配列から選択したフィールドをプルする例を見つけようと精査しました。 キー名に基づいてフィールドをプルすることはできますが、PHPを使用してCFPを使用して配列から値をプルする方法を決定する際に問題が発生します。
どんな援助も大歓迎です。 これまでにライブラリが利用可能になってくれたことに感謝しています。ありがとうございます。
やあ、
「配列から値をプルする」とはどういう意味かわかりません。 あなたが私にあなたの必要性を明確にすることができれば、たぶん私はあなたを助けることができます。
キー名に基づいてそれを行うことができる場合、配列のキーとして値を使用するために、array_flipを使用しようとしましたか?
申し訳ありませんが、適切に説明していませんでした。
エントリの配列があり、各エントリ内に別の配列とともに一連の定義がありました。 それはきれいではなく、それを回避するためのより良い方法がある可能性がありますが、これは私の解決方法でした:
$root = $plist->getValue(true);
$entries = $root->get('Entries');
foreach ($entries as $entry) {
$topalias = $entry->get('versions')->getValue();
foreach ($topalias as $subvalue) {
$finalvalue = $subvalue->get('versionAliases')->getValue();
}
$versionalias = $finalvalue;
}
$ versionaliasは、私がその2番目の層の配列からプルしていたエントリでした。 繰り返しますが、きれいではありませんが、うまくいきました。
迅速な対応に感謝します。もっと効率的な方法があれば、ぜひ聞いてみてください。 ありがとう!
APIは現在のところ、選択したアプローチよりも効率的なアプローチはありません。 つまり、 $plist
での作業に関してです。 おそらくループを最適化することができます(最後の$entry
最後の$finalvalue
が本当に必要な場合を除く)。
そうは言っても、 $plist
内をナビゲートするためのxPath / CSSセレクターのようなアプローチを実装することは可能です。 上記のループするものを$versionalias = $plist->find('versions:last/versionAliases:last')->getValue();
変換するもの
これを解決するPRをマージさせていただきます;)