PHPには、単なる文字列である配列があります。これらの文字列は、家族のさまざまな距離の間で発生する可能性のある関係を表します。次のようになります。
0 => 'Unknown',
1 => 'Parent',
2 => 'Grandparent',
3 => 'Sibling',
4 => 'Child',
5 => 'Grandchild',
6 => 'Spouse',
7 => 'Self',
9 => 'Step Parent',
10 => 'Step Sibling',
11 => 'Step Child',
etc...
この配列はうまく機能しますが、これらのアイテムを純粋にカスタムの方法で並べ替えることができるようにしたいという問題が発生しています(具体的には、配偶者/兄弟から始まり、X-のような最も遠い関係で終わる父に近い)義理の)、しかし私はまたリストが時間とともに追加されることを望みます。私の最初の考えは、配列で注文する必要があるので単に注文することでしたが、後日リレーションを追加することはできません(これが起こるかどうかは疑わしいですが、申し訳ありませんが安全です)。私が思いついた最善の解決策(私の頭の中では一見良いもののようです)は、リレーションの名前とこのような任意の「ソート」値の両方を保持する単純なPHPオブジェクトを作成することでしたnew Relation('Unknown', 0);
。問題は、で配列を作成している間はオブジェクトをインスタンス化できないように見えることです。X => Y
これを書き込もうとすると構文エラーが発生するため、構文:
0 => new Relation('Unknown', 0),
1 => new Relation('Grandparent', 1),
etc...
これが機能する方法、またはおそらくより良い解決策はありますか?この時点で、配列プッシュを使用して(ゲッターで)最初に要求されたときに配列を生成してから保存する必要があるようですが、適切にフォーマットされている方がよいでしょう。私は運が悪いのですか?
編集-明確にするために:現在、キーはデータベースに保存されている値として使用されています。本質的に、他の言語の列挙型として配列を使用しています。