Php 阵列唯一滤波
我有一个多维数组:Php 阵列唯一滤波,php,arrays,sorting,Php,Arrays,Sorting,我有一个多维数组: Array ( [0] => Array ( [Id] => 1 [MTime_Id] => 1 [MName] => Breakfast [DName] => Other Cereals [IName] => [Date] => 2013-02-05
Array
(
[0] => Array
(
[Id] => 1
[MTime_Id] => 1
[MName] => Breakfast
[DName] => Other Cereals
[IName] =>
[Date] => 2013-02-05
)
[1] => Array
(
[Id] => 1
[MTime_Id] => 1
[MName] => Breakfast
[DName] => Porridge
[IName] => Oats,Milk,Sugar
[Date] => 2013-02-06
)
[2] => Array
(
[Id] => 1
[MTime_Id] => 1
[MName] => Breakfast
[DName] => Porridge
[IName] => Oats,Milk,Sugar,Oats,Milk,Sugar
[Date] => 2013-02-05
)
)
我正在尝试使用array unique对其进行过滤
[IName] => Oats,Milk,Sugar,Oats,Milk,Sugar
我运气不好。我如何过滤重复项
干杯。问题是你有两种燕麦,牛奶,糖作为我国的元素,第三种燕麦,牛奶,糖,燕麦,牛奶,糖。这不一样 “燕麦、牛奶、糖”==“燕麦、牛奶、糖、燕麦、牛奶、糖”(或“燕麦、牛奶、糖”。等于(“燕麦、牛奶、糖、燕麦、牛奶、糖”))为假 如果您想让它唯一,您必须分解单个结果,然后对其执行唯一操作,或者您必须将单个值存储在单独的字段中
顺便说一句:这里有一个如何从多维数组中删除重复项的链接我不确定是否存在用于此的函数,这里有一个简单的解决方案, 您可以循环数组,获得每个值的结果,然后分解结果,并将其插入数组中。 然后使用array_unique函数。 试试这个:
$result = array();
foreach($arrays as $array)
{
$tmp = $array['IName'];
$tmp2 = explode(',',$tmp);
foreach ($tmp2 as $t)
{
$result[]=$t;
}
}
$array_unique = array_unique($result);
如果您过滤输入,因此在
IName
字段中没有额外的空格,您可以使用如下简单的方法进行过滤:
$array[2]['IName'] = implode(',', array_unique(explode(',', $array[2]['IName'])));
你想得到什么??我的最后一个元素??我不明白你的问题。有什么重复的?你怎么知道这是重复的?在第二个元素中,我正在尝试删除重复的内容,我想这是我正在尝试做的,但是代码不起作用。谢谢它起作用了,我以前使用过foreach,因为某种原因它不起作用。