以下是代码
<?php
$id ="202883-202882-202884-0";
$str = implode('-',array_unique(explode('-', $id)));
echo $str;
?>
结果是
202883-202882-202884-0
对于$id ="202883-202882-202882-0";,结果是202883-202882-0
我想用零替换重复值,以便结果应该像202883-202882-0-0,而不仅仅是删除它。
对于$id ="202883-0-0-0";,结果应该是202883-0-0-0。不应替换零,允许重复零。我怎样才能存档它?
更多信息:
我想替换每个重复的数字。因为这是一个产品比较网站。最多只有 4 个号码。每个都是 6 位数字或一位数零。全零表示未选择任何产品。1 个 6 位数字和 3 个零表示,1 个产品已选择,3 个空白。
每个 6 位数字都会从数据库收集数据,我不想允许用户多次输入相同的数字(只有手动添加 URL 时才会发生)。
更新:我知道我的问题不清楚,可能是我的英语很差。这里有更多解释,这个功能是针对智能手机比较网站的。网址格式为sitename.com/compare.html?id=202883-202882-202889-202888. 这三个数字都是不同的智能手机(它们的数据库产品 ID)。我不想让用户输入相同的产品 ID,例如id=202883-202882-202882-202888. 它不会在网站中显示两个202882结果,但会引起一些小问题。URL 将保持不变,但内部 PHP 代码应将其视为id=202883-202882-202888-0. 重复项应替换为零并添加到末尾。只有 4 个数字,以“-”分隔。下面的例子或许可以解开疑云!
如果pid=202883-202882-202889-202888结果应该是202883-202882-202889-202888 如果pid=202883-202883-202883-202888结果应该是202888-0-0-0 如果pid=202883-202882-202883-202888结果应该是202883-202882-202888-0 如果pid=202882-202882-202882-202882结果应该是202882-0-0-0
我只想允许字符串中包含 6 位数字或单个数字零。
如果pid=rgfsdg-fgsdfr4354-202883-0结果应该是202883-0-0-0 如果pid=fasdfasd-asdfads-adsfds-dasfad结果应该是0-0-0-0 如果pid=4354-45882-445202882-202882结果应该是202882-0-0-0
它对我来说太复杂了,我知道有一些聪明的人可以比我更有效地完成它。
Qyouu
慕尼黑8549860
叮当猫咪