PHP,我如何生成唯一数字列表?

时间:2011-03-07 07:30:05

标签: php

我有一些数字将成为SQL查询的一部分,就像这样...

152258, 152258, 152258, 152258, 152261, 152261, 152261, 152261, 152261, 152270, 
152270, 152270, 152287, 152287, 152287, 152287

我的查询非常复杂,列表很长,我需要生成一个唯一的数字列表,我可以使用正则表达式吗?

如果不是如何?

5 个答案:

答案 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()

REFERENCE