PHP,我怎样才能产生一个唯一的数字列表?
我有一些数字,这将是一个SQL查询,像这样的一部分...PHP,我怎样才能产生一个唯一的数字列表?
152258, 152258, 152258, 152258, 152261, 152261, 152261, 152261, 152261, 152270,
152270, 152270, 152287, 152287, 152287, 152287
我的查询是相当复杂的,名单很长,我需要产生一个唯一的数字列表,可以我用正则表达式来做这件事?
如果不是如何?
这里是你如何让你的字符串有唯一编号: http://codepad.org/cziNtZOS
<?php
$myString = "152258,152258,152258,152258,152261,152261,152261,152261,152261,152270,152270,152270,152287,152287,152287,152287";
$array = explode(",",$myString);
$unique = array_unique ($array );
$myUniqueString = implode(",",$unique);
echo $myUniqueString ;
?>
我正想写一个函数给你,原来PHP有一个已经:array_unique()
编辑:在任何情况下,这是一个替代方法:
function uniquify_array($a)
{
$b = array(); // I wish I could write just $b = {};
foreach ($a as $i)
$b[$i] = $i;
return $b;
}
请注意,这种乐趣ction仅与值一起使用,而内置的array_unique()
保留原始数组中的键。
如果你想有一个数字范围使用PHP的范围()方法
如果你想要一个唯一的数字列表,你可以使用PHP的兰特()方法
范围():http://php.net/manual/en/function.range.php
兰特():http://php.net/manual/en/function.rand.php
编辑 正如@RobertPitt指出,uniqid可用于生成的ID以及:http://php.net/manual/en/function.uniqid.php
'uniqid'也可以添加imo! – RobertPitt 2011-03-07 07:39:59
@RoberyPitt,谢谢你,不知道这种方法。编辑! – JohnP 2011-03-07 07:59:05
产生一些组号码,然后只用array_unique
功能
$nums = array();
for ($i = 0; $i < $limit; $i++) {
$nums[] = rand() * 10000;
$nums = array_unique($nums);
}
苏丹
你能*先筛选号码列表*把他们的SQL? – salathe 2011-03-07 07:36:20
您想要生成唯一的数字还是要滤除重复? – Eddie 2011-03-07 07:37:22
请进一步解释,这些数字是否已经生成,是否需要将它们放入数据库中,是否有任何因素,如最小和最大值要考虑,它们是否应该在数据库中是唯一的? – RobertPitt 2011-03-07 07:38:45