我有如下的多维数组。
array(
0 => array(
'id' => '6',
'name' => 'Looper',
'language' => 'hindi'),
1 => array(
'id' => '7',
'name' => 'Rush',
'language' => 'hindi'),
2 => array(
'id' => '6',
'name' => 'Looper',
'language' => 'hindi'));因此,我想删除一个具有相同值的数组,它应该如下所示。
array(
0 => array(
'id' => '6',
'name' => 'Looper',
'language' => 'hindi'),
1 => array(
'id' => '7',
'name' => 'Rush',
'language' => 'hindi'));请帮我找出解决方案。
发布于 2012-10-20 11:50:47
可以使用array_unique()从php中的单个多维数组中删除重复条目。
发布于 2012-10-20 11:48:28
好的,也许你可以尝试使用unset(array2),这将从数组http://php.net/manual/en/function.unset.php中删除一个元素
发布于 2012-10-20 11:55:50
传递给保存密钥的变量,使用in_array进行检查
function assc_array_filter($array, $id)
{
$keys = array();
foreach($array as $index => $arr)
{
if(in_array($arr[$id], $keys))
{
unset($array[$index]);
}
else
{
$keys[] = $arr[$id];
}
}
return $array;
}将函数调用为
print_r(assc_array_filter($arr, 'id'));-更新了:使用array_search的交换机
上面的代码将返回数组中的第一个数组,而不是数组中找到的“第二个集合”,因此..添加了一个参数,以允许它更新找到的“第一个集合”。
function assc_array_filter($array, $id, $last_updated = false, $strict = false)
{
$keys = array();
foreach($array as $index => $arr)
{
if(($in_index = array_search($arr[$id], $keys, $strict)) !== false )
{
if($last_updated)
{
$array[$in_index] = $arr;
}
unset($array[$index]);
}
else
{
$keys[] = $arr[$id];
}
}
return $array;
}调用方式
print_r(assc_array_filter($arr, 'id', true));https://stackoverflow.com/questions/12985094
复制相似问题