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'
中有所不同,该怎么办?