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");
解决方案 »
- php获取某个网站了内容 并且保存为TXT 下次直接从txt读取
- safeVar() 是什么意思啊?
- 字符串截取得问题
- 上传虚拟主机后,竟然不能返回到lasturl?
- install/index.php显示乱码
- 怎样判断xml有没有子节点
- file_exists在PHP的安全模式下被禁用,询替代的解决方法
- 运用教本,怎样能一次插入多条数据到库里,怎么样的一个思路,望高手们指教!
- PHP4.2.3+APACHE+MySQL验证问题
- 谁能举一个一对多 多对多的例子
- 求神人帮助!通过隐藏域得出的值,插入到MYSQL的问题难点!我没分了,很想把所有的分都给你们!神人看到后一定进入帮我想想办法啊!
- 如何做内容摘要
'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);
?>