zoukankan
html css js c++ java
数组去重复处理
我有一个二维数组。我想把里面重复的去掉
taylorr
(2008-11-25 11:28:46)
首先,要定义“重复”;
其次,要给一点基本的数据:对数字和字符串和对象的判断操作是可以、也是应该不一样的;
leehui1983
(2008-11-25 11:32:36)
foreach ,unset
wangdezhi
(2008-11-25 11:36:43)
QUOTE:
原帖由
leehui1983
于 2008-11-25 11:32 发表
foreach ,unset
yafeikf
(2008-11-25 11:46:57)
array_unique
??
karas9
(2008-11-25 11:48:03)
array_unique
xu569874
(2008-11-25 12:36:38)
array_unique 对二维的不好使
liexusong
(2008-11-25 12:45:02)
二,三维.....数组用递归!!偶最喜欢的方法!!
xu569874
(2008-11-25 12:51:13)
递归还怎么做
liexusong
(2008-11-25 14:15:04)
想了很久,希望能帮到你!!N维数组都可以的!!
[php]
<?php
function &kill_array_same($array) {
$leng = count($array);
for($i = 0 ; $i < $leng ; $i++) {
if(is_array($array[$i]) && count($array[$i]) > 0) {
$array[$i] = &kill_array_same($array[$i]);
} else {
for($j = $i + 1 ; $j < $leng ; $j++) {
if($array[$i] == $array[$j]) {
unset($array[$j]);
}
}
}
}
return $array;
}
$array = array('hello',2,3,'hello',2,3,array(1,1,2,2,array(1,1,2,2,array(1,2,3,1,2,3))));
print_r(kill_array_same($array));
?>
[/php]
输出:
Array ( [0] => hello [1] => 2 [2] => 3 [6] => Array ( [0] => 1 [2] => 2 [4] => Array ( [0] => 1 [2] => 2 [4] => Array ( [0] => 1 [1] => 2 [2] => 3 ) ) ) )
studyphp
(2008-11-25 15:24:30)
LS不错,用的是递归。N维都行。
异度冰晶
(2008-11-25 16:27:00)
也许想要的是这种,事实上这个函数我一直在用,因为有需求
[php]
function uniqueByChild($array, $child)
{
$child = "['" . implode("']['", explode(',', $child)) . "']";
$buffer = array();
foreach($array as $index => $value)
{
eval("\$check = \$value{$child};");
if(in_array($check, $buffer))
{
unset($array[$index]);
}
else
{
$buffer[] = $check;
}
}
return $array;
}
$array = array(array('id' => 1, 'name' => 'name1'), array('id' => 2, 'name' => 'name2'), array('id'=>1, 'name' => 'name1'));
$array2 = uniqueByChild($array, 'id');
print_r($array2); //array(array('id' => 1, 'name'=>'name1'), array('id' => 2, 'name' => 'name2'));
[/php]
另外附赠一个多维数组排序函数,与上面的函数类似
[php]
function sortByChild(&$array, $child, $asc = true, $keepAssoc = false)
{
$child = "['" . implode("']['", explode(',', $child)) . "']";
if($asc)
{
$sortFunc = create_function('$a, $b',"return \$a{$child} - \$b{$child};");
}
else
{
$sortFunc = create_function('$a, $b',"return \$b{$child} - \$a{$child};");
}
if($keepAssoc)
{
uasort($array, $sortFunc);
}
else
{
usort($array, $sortFunc);
}
}
[/php]
查看全文
相关阅读:
CATIA 各个版本代号详解
CATIA 基础详解 第01章 CATIA初认识
CATIA 使用技巧--转换出轻巧的tif格式文件
中国水墨动画系列 内容简介
Python开发 第02课 Python 数据类型
Python开发 第01课 Python 简介
UG 常用设置
matplotlib 学习笔记02:marker标记详解
matplotlib 知识点13:绘制散点图(scatter函数精讲)
matplotlib 知识点11:绘制饼图(pie 函数精讲)
原文地址:https://www.cnblogs.com/wangjiangze/p/1950657.html
最新文章
Java命令行执行
Javascript函数
windows下解决目录被占用无法删除的问题
npm常用命令
journalctl使用
Suse 资源整理
Intellij IDE使用技巧整理
go基础
toString覆写
openssl操作公私钥和加解密的一些常用命令
热门文章
JAVA反射机制
Hibernate
编写一个简易的留言薄,实现添加留言和显示留言内容的功能
JSP用户登录页面
有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
SQL语句练习
将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程 找出1000以内的所有完数。
输入两个正整数m和n,求其最大公约数和最小公倍数。
随便选择两个城市作为预选旅游目标。实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000ms以内),哪个先显示完毕,就决定去哪个城市。分别用Runnable接口和Thread类实现。
Copyright © 2011-2022 走看看
其次,要给一点基本的数据:对数字和字符串和对象的判断操作是可以、也是应该不一样的;
QUOTE:
??
[php]
<?php
function &kill_array_same($array) {
$leng = count($array);
for($i = 0 ; $i < $leng ; $i++) {
if(is_array($array[$i]) && count($array[$i]) > 0) {
$array[$i] = &kill_array_same($array[$i]);
} else {
for($j = $i + 1 ; $j < $leng ; $j++) {
if($array[$i] == $array[$j]) {
unset($array[$j]);
}
}
}
}
return $array;
}
$array = array('hello',2,3,'hello',2,3,array(1,1,2,2,array(1,1,2,2,array(1,2,3,1,2,3))));
print_r(kill_array_same($array));
?>
[/php]
输出:
Array ( [0] => hello [1] => 2 [2] => 3 [6] => Array ( [0] => 1 [2] => 2 [4] => Array ( [0] => 1 [2] => 2 [4] => Array ( [0] => 1 [1] => 2 [2] => 3 ) ) ) )
[php]
function uniqueByChild($array, $child)
{
$child = "['" . implode("']['", explode(',', $child)) . "']";
$buffer = array();
foreach($array as $index => $value)
{
eval("\$check = \$value{$child};");
if(in_array($check, $buffer))
{
unset($array[$index]);
}
else
{
$buffer[] = $check;
}
}
return $array;
}
$array = array(array('id' => 1, 'name' => 'name1'), array('id' => 2, 'name' => 'name2'), array('id'=>1, 'name' => 'name1'));
$array2 = uniqueByChild($array, 'id');
print_r($array2); //array(array('id' => 1, 'name'=>'name1'), array('id' => 2, 'name' => 'name2'));
[/php]
另外附赠一个多维数组排序函数,与上面的函数类似
[php]
function sortByChild(&$array, $child, $asc = true, $keepAssoc = false)
{
$child = "['" . implode("']['", explode(',', $child)) . "']";
if($asc)
{
$sortFunc = create_function('$a, $b',"return \$a{$child} - \$b{$child};");
}
else
{
$sortFunc = create_function('$a, $b',"return \$b{$child} - \$a{$child};");
}
if($keepAssoc)
{
uasort($array, $sortFunc);
}
else
{
usort($array, $sortFunc);
}
}
[/php]