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 - Fatal编程技术网

Php 如何删除多维数组中特定键的重复值?

Php 如何删除多维数组中特定键的重复值?,php,arrays,Php,Arrays,我有以下多维数组: <?php $array = array( array('first' => 1, 'second' => 1), array('first' => 1, 'second' => 1), array('first' => 2, 'second' => 1), array('first' => 3, 'second' => 1), array('first' => 3, 'second' => 1), arra

我有以下多维数组:

<?php 
$array = array(
array('first' => 1, 'second' => 1),
array('first' => 1, 'second' => 1),
array('first' => 2, 'second' => 1),
array('first' => 3, 'second' => 1),
array('first' => 3, 'second' => 1),
array('first' => 3, 'second' => 1));

请参阅:

您必须对每个
循环执行一些
操作,然后自己重新组装阵列。也可以查看PHP。

代码:

$array = array(
    array('first' => 1, 'second' => 1),
    array('first' => 1, 'second' => 1),
    array('first' => 2, 'second' => 1),
    array('first' => 2, 'second' => 1),
    array('first' => 3, 'second' => 1),
    array('first' => 3, 'second' => 1)
);

$temp = array();
$new = array();

foreach($array as $value)
{
    if(!in_array($value['first'],$temp))
    {
        $temp[] = $value['first'];
        $new[] = $value;
    } 
}
现在,
$new
包含以下内容:

array(
    array('first' => 1, 'second' => 1),
    array('first' => 2, 'second' => 1),
    array('first' => 3, 'second' => 1),
);
array(
    array('first' => 1, 'second' => 1),
    array('first' => 2, 'second' => 1),
    array('first' => 3, 'second' => 1),
);

这将删除重复的阵列:

$array=array\u map('unserialize',array\u unique(array\u map('serialize',$array))


密钥仍然是相同的,因此您可能需要修复它们。

如果数组是这样的呢

$array = array(
    array('first' => 1, 'second' => 1),
    array('first' => 1, 'second' => 1),
    array('first' => 1, 'second' => 12),
    array('first' => 2, 'second' => 1),
    array('first' => 2, 'second' => 1),
    array('first' => 3, 'second' => 1),
    array('first' => 3, 'second' => 1)
);

$temp = array();
$new = array();
您希望新数组$new包含以下内容:

array(
    array('first' => 1, 'second' => 1),
    array('first' => 2, 'second' => 1),
    array('first' => 3, 'second' => 1),
);
array(
    array('first' => 1, 'second' => 1),
    array('first' => 2, 'second' => 1),
    array('first' => 3, 'second' => 1),
);


您能给我们举个例子,说明哪些钥匙应该取下,哪些不应该取下吗?当然是预期的结果!我有点搞不清楚您在输出中寻找什么。是否要
$array=array(1,2,3,4,5,6)
$array=array(array('first'=>1)、array('first'=>2)、array('first'=>3))?谢谢,但是如果我也输入“second”和“third”——在second和third中我没有删除duplicate,我只想从键“first”中删除值——在我的数组中可以是另外的键,例如“second”和“third”——因为这些键不能删除duplicate。这是一个非常“不雅”的方法。我如何使用这个方法进行示例?对不起,我还是不太明白你需要什么。是否也要过滤掉
“second”
键中的重复项?了解此代码的用途也可能有所帮助。总的来说,可能有更好的方法来构建它。好的,我知道您不想在
'first'
之后从后续键中删除重复项。但是如果您有一些重复的
'first'
,但它们在后续的键
'second'
'third'
中有所不同,该怎么办?