方法一:
/**
* 传入参数:$array二维数组, $unique唯一码
* 二维数组去重,
* 传出: 二维数组
*/
public function array_unique($array, $unique)
{
$out = array();
$uni = array();
foreach ($array as $value)
{
if (is_array($value))
{
if (count($out) > 0)
{
foreach ($out as $row)
{
$uni[count($uni)] = $row[$unique];
}
}
if (!in_array($value[$unique], $uni))
{
$out[count($out)] = $value;
}
}
}
return $out;
}
方法二:
/**
* 传入参数:$array二维数组, $unique唯一码
* 二维数组去重,
* 传出: 二维数组
*/
public function array_unique_pro($array, $unique) {
// 二维数组$unique
$arr = array();
// 指定值去重
$uni = array();
// 去重后的二维数组
$out = array();
// 取出指定的唯一值
foreach ($array as $key => $value) {
$arr[$key] = $value[$unique];
}
// 唯一值去重
foreach ($arr as $key => $value) {
if (!in_array($value, $uni)) {
$uni[$key] = $value;
}
}
// 生成去重后的二维数组
foreach ($uni as $key => $value) {
if (!in_array($value, $out)) {
$out[count($out)] = $array[$key];
}
}
return $out;
}
例如:
function test() {
$arr = array(
"0" => array(
"id"=>1,
"name"=>"dash"
),
"1" => array(
"id"=>2,
"name"=>"asd"
),
"2" => array(
"id"=>3,
"name"=>"df"
),
"3" => array(
"id"=>4,
"name"=>"dash"
)
);
$pro = $this->array_unique($arr, "name");//去除name中的重复值
}