Php 删除阵列中的重复ID
我尝试删除带有array_unique的重复文章,但似乎无法以这种方式工作,我尝试在之后添加array_unique($array),但它只返回一个结果,record_num是IDPhp 删除阵列中的重复ID,php,arrays,Php,Arrays,我尝试删除带有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] => Arr
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
)
}
使用这样的函数
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');
使用这样的函数
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');
您可以使用从多维数组中删除重复项。返回数组的一列,但如果将第二个参数设置为
null
,将第三个参数设置为record\u 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"
}
}
您可以使用从多维数组中删除重复项。返回数组的一列,但如果将第二个参数设置为
null
,将第三个参数设置为record\u 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"
}
}
事实上,您可以通过多种方式来实现这一点,这种方式也适用于
array\u map()
和array\u unique()
结果:
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
)
)
演示:事实上,您可以通过多种方式来实现它,这种方式也适用于
数组映射()
和数组唯一()
结果:
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
)
)
演示:
array\u unique()
返回一个新数组。如果您尝试$array=array\u unique($array),会发生什么情况代码>?您希望标题
数据发生什么变化?由于您将有一个记录\u num
但有多个不同的标题
元素值,因此它应该仅适用于简单数组。请查看其他函数或创建其他循环。请从php array_unique文档本身@rickdenhaan same中检查这一点。array_unique()
返回一个新数组。如果您尝试$array=array\u unique($array),会发生什么情况代码>?您希望标题
数据发生什么变化?由于您将有一个记录\u num
但有多个不同的标题
元素值,因此它应该仅适用于简单数组。请查看其他函数或创建其他循环。请从php array_unique文档@rickdenhaan-same中查看这一点。是的,但是array_列是php5.5+中的一个函数older@Darko1996如果您对array\u column()有问题
由于php版本的原因,您可以在php.net上使用用户提供的代码来实现较低版本的php。请参阅@Darko1996为什么要使用旧版本的PHP?如果您升级了它是一个旧项目,需要为新版本的php更新1000多个文件,这有很多好处:(您不必总是因为升级编译器版本而更新PHP文件。某些或大多数函数可以工作,但可能会显示一个通知。是的,但array_column是PHP5.5+中的一个函数older@Darko1996如果您对array\u column()有问题
由于php版本的原因,您可以在php.net上使用用户提供的代码来获得较低版本的php。请参阅@Darko1996为什么要使用旧版本的php?如果您升级了旧项目,将有很多好处需要为新版本的php更新1000多个文件:(你不必总是因为升级了编译器的版本就更新PHP文件。一些或大多数函数可以工作,但可能会显示一个通知。嗯,看起来很有希望,我现在就试试看,这正是我需要的嗯,看起来很有希望,我现在就试试看,这正是我需要的