So I have a multidimensional array.
Each sub-array contains a value for IDs ... 1+ IDs separated by a hash.
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')
)
Now, as you can see, some of those have an ID in common ... but sometimes it's multiple, other times just 1 out of n, or none.
What I need to do is add a Key to each child array, and have the same Key if they are related.
Thus;
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')
)
That way I can readily find all related/matching items.
Note : those entries with Key=3 ... ... that's the bit that is screwing me over. a simple foreach won't do the job. I've tried looping through the original array, looking to see if a Key is set, if not, create one ... then extract the IDs and assign them to a new array with that Key. but I never seem to catch the "backward move".
No - no code, as all I've managed so far is a straightforward foreach and new key->IDs array, which fails miserably.
I've searched around - but it seems there isn't anything that tackles this (which I find odd, as I would have thought it common for adding products to DBs etc.).