440101199912010001
440101199912010001
440101199912010002
440101199912010003
这样的身份证放进数组中,
$idcode=XX;//代表上面的4个身份证,
$arr=array();
if(!in_array($idcode,$arr)){
$arr[]=$idcode;
}
结果得到的只有第一个身份证。
难道PHP对比时会截断长度?
要如何解决这个问题。
需要的结果是:
最后的$arr=array("440101199912010001","440101199912010002","440101199912010003");
440101199912010001
440101199912010002
440101199912010003
这样的身份证放进数组中,
$idcode=XX;//代表上面的4个身份证,
$arr=array();
if(!in_array($idcode,$arr)){
$arr[]=$idcode;
}
结果得到的只有第一个身份证。
难道PHP对比时会截断长度?
要如何解决这个问题。
需要的结果是:
最后的$arr=array("440101199912010001","440101199912010002","440101199912010003");
'440101199912010001',
'440101199912010001',
'440101199912010002',
'440101199912010003',
);$arr = array();
foreach($ar as $idcode) {
if(!in_array("_$idcode", $arr)){
$arr[] = "_$idcode";
}
}$arr = array_map(create_function('$v', 'return substr($v, 1);'), $arr);
print_r($arr);
Array
(
[0] => 440101199912010001
[1] => 440101199912010002
[2] => 440101199912010003
)由于php会自动变换数据类型,只能变通处理了
$arr = array();
$id_array = array('440101199912010001','440101199912010001','440101199912010002','440101199912010003');
$arr = array_unique($id_array);
以上代碼為去除數組中的重複值,應該就是你想要的功能.這個更簡單//=================================================
還有你的代碼的問題是沒有對數據進行循環取值.當然只能夠拿到一個結果啦
表:tb_idcode 里面有字段id,code ,
有四条记录:
id code
1 440101199912010001
2 440101199912010001
3 440101199912010002
4 440101199912010003
目的就是想从这个表中读出这四条记录,然后放在一个数组中,不重复放,
数组的结果也就是只有这三个数:
440101199912010001
440101199912010002
440101199912010003我现在用的就是PHP的函数in_array();结果只有一个数放在数组里面。
请问为什么?要如何解决?
for(i=0;i<arraylen;i++)
{
array[i]==e;
}
因此!in_array($idcode,$arr)会始终成立
其次copy数组请用循环实现,你这样是把$idcode的第一个元素放入array中
后来我用:
for($n=0;$n <= count($arr_senduser);$n++){
if(strval($arr_senduser[$n]) === strval($tmpv)){//这种方法做比对,结果才正确了。
$kkk=1;
}
}
if($kkk==0){
$arr_senduser[]=$tmpv;
}
所以比较迷惑。
程序还有其他地方用到in_array();
不可能去做循环,因为效率会很低。
请大家帮忙看一下。
谢谢xuzuning:我先试一下。
<?php
$ar = array(
'440101199912010001',
'440101199912010001',
'440101199912010002',
'440101199912010003',
);$arr = array();
foreach($ar as $idcode) {
if(!in_array($idcode, $arr, true)){
$arr[] = $idcode;
}
}
var_dump($arr);
?>