包含以下内容,我正在尝试从多维关联数组获取array_unique值
在这里,我仅显示与此类似的示例数组。
$array = ['games'=>[['vollyball', 'football'], ['vollyball', 'football'], ['rubby', 'chess']]];
这里尝试过
foreach ($array as $key => &$value) {
$value = array_unique($value);
}
echo "<pre>";
print_r($array);
echo "</pre>";
exit;
我在这里期望的输出是
$array = ['games'=>[['vollyball', 'football'], ['rubby', 'chess']]];
即使从多维数组中删除重复项,这里的数组也应该相同。
感谢您的时间和建议。
答案 0 :(得分:1)
您可以尝试以下操作:
SELECT ProductID, SUM(Quantity) AS Quantity
FROM Production.ProductInventory
WHERE ProductID NOT IN (1001)
GROUP BY ProductID;
这假设您的所有可用值都低于SELECT ProductID, SUM(Quantity) AS Quantity
FROM Production.ProductInventory
WHERE Quantity >= 1800
GROUP BY ProductID;
。
编辑:
这是使用$a=array_values(array_unique(array_merge(...$array['games'])));
的另一种方式:
$array['games']
我不太喜欢全局array_walk
数组,但是我认为这是前进的道路。在array_walk($array['games'],function($itm){global $res; $res[json_encode($itm)]=$itm;});
echo json_encode(array_values($res));
的回调函数中,我将所有值添加到关联数组($res
)中。键是其实际值的JSON表示形式。这样,我将覆盖关联数组array_walk()
中的相同值,并在最后应用$res
函数将其转换回非关联数组时得到一组唯一值。
结果是:
$res
这里有一个小演示,您可以查看:http://rextester.com/JEKE60636
2。编辑
使用包装函数,我现在可以不用全局变量array_values()
并就地执行操作,即。 e。直接从源数组中删除重复的元素:
[["vollyball","football"],["rubby","chess"]]
这将导致
$res