所以我有一个多维数组。
每个子数组都包含一个 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……但有时它是多个,有时只是 n 中的 1 个,或者没有。
我需要做的是为每个子数组添加一个 Key,如果它们相关,则具有相同的 Key。
因此;
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 和 new key->IDs 数组,它失败了。
我四处搜索 - 但似乎没有任何东西可以解决这个问题(我觉得很奇怪,因为我认为将产品添加到数据库等很常见)。