继承人的情况我在我的数据库中的条目,其中所述字段的值是像下面给出匹配在PHP异种串
- 64 | 65 | 0 | 0 | 72 | 0 | 0 |
- 61 | 65 | 0 | 0 | 72 | 0 | 0 |
而在前端,我得到一个像64 | 65 | 72 | 0 | 0 | 0 | 0 | (请参阅条目类似于1字段但重新排列)。根据用户输入的选项(请注意字符串长度将保持不变)。
是可以等同于数据库字段的用户领域,从而从数据库中获取数据的匹配场
继承人的情况我在我的数据库中的条目,其中所述字段的值是像下面给出匹配在PHP异种串
而在前端,我得到一个像64 | 65 | 72 | 0 | 0 | 0 | 0 | (请参阅条目类似于1字段但重新排列)。根据用户输入的选项(请注意字符串长度将保持不变)。
是可以等同于数据库字段的用户领域,从而从数据库中获取数据的匹配场
如果你爆你有一个数组,你可以排序的字符串。
但是,除非数据库中的数据也被排序,否则这是没有用的。
例如$my_array = explode("|", trim($str, "|"));
是没有别的办法,因为排序数据库字段不是我的选择 – 2012-03-27 15:28:38
谢谢乔希。 @OP - 有多少条记录?也许你可以写一个简短的脚本来重新进入该领域? – Pete 2012-03-27 15:33:11
以及有5000多条记录 – 2012-03-27 15:46:06
function rearrange($string)
{
$temp = explode("|", $string);
// $temp is now an array. sort it however you want and store it back in $temp
return implode("|", $temp);
}
我不完全知道什么是重新排序规则,但让我们说明与形式ABCDEFG解决方案 - > ABDECFG。
在将数据发送回服务器之前,您可以重新排序JavaScript中的数据,也可以在将数据发送到MySQL之前在服务器上重新排序。由于你的问题是在PHP/MySQL下提交的,我假设你想执行后者。
请注意,这不是最优雅的解决方案,但它清楚地说明了方法。你可以把它擦亮,一旦你了解的基本思想:
// Assume $Unsorted = '64|65|0|0|72|0|0|'
$Segments = explode('|', $Unsorted);
if (count($Segments) != 7)
{
// Handle the error case
}
$Sorted = sprintf
(
'%u|%u|%u|%u|%u|%u|%u|',
$Unsorted[0],
$Unsorted[1],
$Unsorted[3],
$Unsorted[4],
$Unsorted[2],
$Unsorted[5],
$Unsorted[6]
);
// Now, $Sorted = '64|65|0|0|72|0|0|'
以及我的输入是用户输入的组合,可以改变,所以不知道我怎么能实现你的解决方案,但会尽力回复你 – 2012-03-27 16:00:43
我会说其他人一样: 分裂您的字符串转换成数组,然后比较其
$myInput = explode('|', $strInput);
$similar = (true === empty(array_diff($myInput, $data))
&& true === empty(array_diff($data, $myInput)));
校正(空只接受变量)
$myInput = explode('|', $strInput);
$diff1 = array_diff($myInput, $data);
$diff2 = array_diff($data, $myInput);
$similar = (true === empty($diff1)
&& true === empty($diff2));
好吧,我尝试了这样做,但它给了我一个致命的错误 – 2012-03-27 15:57:06
噢,当然!我的错!空只接受变量! (我没有测试它就写了它)。我编辑我的文章 – Guile 2012-03-27 15:58:35
通过管道分割输入和数据库字符串并对它们进行排序,然后比较像这样的结果数组:
$arr1 = explode('|', '64|65|0|0|72|0|0|');
$arr2 = explode('|', '64|65|72|0|0|0|0|');
sort($arr1);
sort($arr2);
if ($arr1 === $arr2)
echo "Matched\n";
else
echo "Not Matched\n";
谢谢anubhava会尝试并找回你 – 2012-03-27 16:03:55
分割字符串,并搜索每一个可能的组合 - 这就是你的痛苦在一个单一的数据库字段的多个值相结合 – ManseUK 2012-03-27 15:22:42
我们展示你已经尝试到现在为止什么... – 2012-03-27 15:23:21