我有一些数字将成为SQL查询的一部分,就像这样...
152258, 152258, 152258, 152258, 152261, 152261, 152261, 152261, 152261, 152270,
152270, 152270, 152287, 152287, 152287, 152287
我的查询非常复杂,列表很长,我需要生成一个唯一的数字列表,我可以使用正则表达式吗?
如果不是如何?
答案 0 :(得分:2)
以下是如何使字符串具有唯一编号: 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 ;
?>
答案 1 :(得分:1)
我打算为你编写一个函数,结果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;
}
请注意,此函数仅适用于值,而内置array_unique()
会保留原始数组中的键。
答案 2 :(得分:1)
如果你想要一系列数字,请使用PHP的range()方法
如果你想要一个唯一的数字列表,你可以使用PHP的rand()方法
range():http://php.net/manual/en/function.range.php
rand():http://php.net/manual/en/function.rand.php
修改强> 正如@RobertPitt指出的那样,uniqid也可用于生成ID:http://php.net/manual/en/function.uniqid.php
答案 3 :(得分:1)
生成一些数字,然后只使用array_unique
函数
$nums = array();
for ($i = 0; $i < $limit; $i++) {
$nums[] = rand() * 10000;
$nums = array_unique($nums);
}
苏丹
答案 4 :(得分:0)
USE RANGE()