Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 阵列唯一滤波_Php_Arrays_Sorting - Fatal编程技术网

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,因为某种原因它不起作用。