我尝试用array_unique删除重复的帖子,但似乎无法以这种方式工作,我尝试过一会儿再添加array_unique($ array),但它只返回一个结果,record_num是ID。
while($row = mysql_fetch_assoc($result)) {
$array[] = $row;
}
array_unique($array)
foreach($array as $row) {
.....
}
数组示例
Array
(
[0] => Array
(
[record_num] => 18152
[title] => Title of post
)
[1] => Array
(
[record_num] => 18150
[title] => Title of post 2
)
[2] => Array
(
[record_num] => 18134
[title] => Title of post 3
)
[3] => Array
(
[record_num] => 18134
[title] => Title of post 3
)
}
答案 0 :(得分:3)
您可以使用array_column从多维数组中删除重复项。
Array_column返回数组的一列,但是如果将第二个参数设置为null
,而将第三个参数设置为record_num
,它将删除重复项。
$arr = array_values(array_column($arr, null, 'record_num'));
输出:
array(3) {
[0]=>
array(2) {
["record_num"]=>
int(18152)
["title"]=>
string(14) "Title of post "
}
[1]=>
array(2) {
["record_num"]=>
int(18150)
["title"]=>
string(15) "Title of post 2"
}
[2]=>
array(2) {
["record_num"]=>
int(18134)
["title"]=>
string(15) "Title of post 3"
}
}
答案 1 :(得分:2)
使用这样的功能
function unique_multidim_array($array, $key) {
$temp_array = array();
$i = 0;
$key_array = array();
foreach($array as $val) {
if (!in_array($val[$key], $key_array)) {
$key_array[$i] = $val[$key];
$temp_array[$i] = $val;
}
$i++;
}
return $temp_array;
}
并称呼它
unique_multidim_array($details,'record_num');
答案 2 :(得分:1)
实际上,您可以通过多种方式完成此操作,这种方式也适用于array_map()
和array_unique()
$result = array_map("unserialize", array_unique(array_map("serialize", $array)));
print_r($result);
结果:
Array (
[0] => Array (
[record_num] => 18152
[title] => Title of post
)
[1] => Array (
[record_num] => 18150
[title] => Title of post 2
)
[2] => Array (
[record_num] => 18134
[title] => Title of post 3
)
)