0

だから私は多次元配列を持っています。
各サブ配列には、ハッシュで区切られた ID ... 1+ ID の値が含まれます。

array(
    array('name'=>'this', 'ids'=>'x'),
    array('name'=>'this', 'ids'=>'x#y'),
    array('name'=>'this', 'ids'=>'x#y#z'),
    array('name'=>'this', 'ids'=>'y'),
    array('name'=>'this', 'ids'=>'z#b#a'),
    array('name'=>'this', 'ids'=>'d'),
    array('name'=>'this', 'ids'=>'e'),
    array('name'=>'this', 'ids'=>'f#g'),
    array('name'=>'this', 'ids'=>'d#g')
)

ご覧のとおり、ID が共通しているものもあります。
私がする必要があるのは、各子配列にキーを追加し、それらが関連している場合は同じキーを持つことです。

したがって;

array(
    array('key'=>'1', 'name'=>'this', 'ids'=>'x'),
    array('key'=>'1', 'name'=>'this', 'ids'=>'x#y'),
    array('key'=>'1', 'name'=>'this', 'ids'=>'x#y#z'),
    array('key'=>'2', 'name'=>'this', 'ids'=>'y'),
    array('key'=>'1', 'name'=>'this', 'ids'=>'z#b#a'),
    array('key'=>'3', 'name'=>'this', 'ids'=>'d'),
    array('key'=>'4', 'name'=>'this', 'ids'=>'e'),
    array('key'=>'3', 'name'=>'this', 'ids'=>'f#g'),
    array('key'=>'3', 'name'=>'this', 'ids'=>'d#g')
)

そうすれば、関連/一致するすべてのアイテムを簡単に見つけることができます。

注:Key=3のエントリ... ...それは私を台無しにしているビットです。単純な foreach ではうまくいきません。元の配列をループして、キーが設定されているかどうかを確認し、設定されていない場合は作成して、ID を抽出し、そのキーを使用して新しい配列に割り当てました。しかし、「後退」をキャッチすることは決してないようです。

いいえ、コードはありません。これまでに管理したのは単純な foreach と新しい key->IDs 配列だけで、惨めに失敗します。

私は周りを検索しましたが、これに取り組むものはないようです(DBなどに製品を追加するのが一般的だと思っていたので、これは奇妙だと思います)。

4

1 に答える 1