Php 删除阵列中的重复ID

Php 删除阵列中的重复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

我尝试删除带有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
        )
}

使用这样的函数

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文件。一些或大多数函数可以工作,但可能会显示一个通知。嗯,看起来很有希望,我现在就试试看,这正是我需要的嗯,看起来很有希望,我现在就试试看,这正是我需要的