繼承人的情況我在我的數據庫中的條目,其中所述字段的值是像下面給出匹配在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