我有一个如下所示的数组结构:
Array
(
[0] => Array
(
[title] => Blue
[image] => catalog/Color/blue.png
)
[1] => Array
(
[title] => Black
[image] => catalog/Color/black.png
)
[2] => Array
(
[title] => Black
[image] => catalog/Color/black.png
)
)
我想要做的是从数组中删除重复的元素。我曾尝试使用array_unique($myarray)
,但似乎无效。
答案 0 :(得分:4)
只需使用title
和image
组合作为键,就可以确保唯一性:
foreach($array as $val) {
$result[$val['title'].$val['image']] = $val;
}
// if you want, get values and reindex
$result = array_values($result);
答案 1 :(得分:2)
试试我的解决方案:
<?php
function searchDuplicate($arr, $obj) {
foreach ($arr as $value) {
if ($value['title'] == $obj['title'] && $value['image'] == $obj['image']) {
return true; //duplicate
}
}
return false;
};
$arr = array(
array (
'title' => 'Blue',
'image' => 'catalog/Color/blue.png'
),
array (
'title' => 'Black',
'image' => 'catalog/Color/black.png'
),
array (
'title' => 'Black',
'image' => 'catalog/Color/black.png'
)
);
$result = array();
foreach ($arr as $obj) {
if (searchDuplicate($result, $obj) === false) {
$result[] = $obj;
}
}
print_r($result);