$arr=array('a-1,b-1,b-2,c-1');如上面的那个数组.处理后的状态为 a-1,b-1,c-1 如各位所见,删除的条件是因为按逗号(,)分割的数组中,元素的第一个位(a,b,c).因为元素[1]和元素[1]中的第一个子元素b相同,所以去除其中一个,当然,可以是后面的,也可以是前面的.这处理方法类似于小型数据库.删除掉符合条件的重复元素.
我曾经想用两个数组$arr1和$arr2的方法.也有试过遍历的方法,array_unique的方法也试过.不过似乎不太理想...请教各位有什么高见或思路.都可以说一下.答者有分!
我曾经想用两个数组$arr1和$arr2的方法.也有试过遍历的方法,array_unique的方法也试过.不过似乎不太理想...请教各位有什么高见或思路.都可以说一下.答者有分!
function my_array_unique($from) {
for ($i=count($from)-1;$i>1;$i--) {
$last = $from[$i];
$from[$i] = false;
if (!in_array($last,$from)) {
$from[$i]=$last;
}
}
$from = array_unique($from);
$from = array_slice($from,0,count($from)-1);
return $from;
}
$ar = split(',', $s);
$r = array();
foreach($ar as $v) {
list($a) = split('-', $v);
$r[$a] = $v;
}
return join(',', $r);
}echo foo($arr[0]);a-1,b-2,c-1
$result = process($raw[0]);
echo implode(',', $result);
function process($str) {
$output = array();
foreach(explode(',', $str) as $value) {
$output[$value{0}] = $value;
}
return $output;
}
$arr = array('a-1,b-1,b-2,c-1');
$arr = explode(',',$arr[0]);
$tmparr = array();
foreach ($arr as $key => $val) {
$v = $val[0];//只用于单字母,如果aa-1,bb-1需分割为数组
if (in_array($v,$tmparr)) unset($arr[$key]);
$tmparr[] = $v;
}
$arr = implode(',',$arr);
var_dump($arr);