ホームページ >バックエンド開発 >PHPチュートリアル >重複データを見つけて関数を書き直す、その解決方法

重複データを見つけて関数を書き直す、その解決方法

WBOY
WBOYオリジナル
2016-06-13 13:38:41855ブラウズ

重複データを見つけるには、データベース内の関数を次のように書き換えます:
id wc we
1 q 3
2 a 0
3 q 3
4 b 1
5 b 1
6 q 2
7 q 2
8 g 3
取得したい: become
id wc we
1 q 3-1/2
3 q 3- 2/2
4 b 1-1/2
5 b 1-2/2
6 q 2-1/2
7 q 2-2/2


------解決策---------------------- 数時間苦労してやっと書き終えたので消させてください!この時期になると、変な部署がとても懐かしいです…コードが気持ち悪すぎる気がします。
結果を取得します。ループ配列が SQL 更新データベースに組み込まれます。コードを理解できない場合は、自分で作業する必要があります。

Array
(
[0] ] => 1 23 234
[1] => 2 24 235-1/2
[2] => 3 24 235-2/2
[3] => 4 25 235-1 /2
[4] => 5 25 235-2/2
[5] => 6 37 456-1/2
[6] => 7 37 456-2/2
)


PHP コード

$array = array('1 23 234', '2 24 235', '3 24 235', '4 25 235', '5 25 235', '6 37 456', '7 37 456'); $newArray = 配列(); foreach ($array as $value) { preg_match('/^[0-9]+s([0-9]+s[0-9]+$)/', $value, $mArray); $newArray[] = $mArray[1]; } $countArray = array_count_values($newArray); $fixArray = 配列(); $i = 1; foreach ($newArray as $newkey => &$value) { $newArrayKey = 配列(); if (array_key_exists($value, array_flip($newArray))) { $newArrayKey = array_keys($newArray, $value); if (count($newArrayKey) !== 1) { $tmp = array_search($newkey, $newArrayKey); $tmp = intval($tmp) + 1; $fixArray[] = $i . '-' . $countArray[$value]; } それ以外 { $fixArray[] = $i . $value; } $i++; } } print_r($fixArray);
<br>------解決策------------------<font color="#e78608"></font>
ニウニウ、最後まで中途半端にどうすることもできませんか?少なくともコメントで説明する必要があります。 。 <br><br>そういえば大きいバージョンは長いこと出てないですね。かなり懐かしいです。 。 <br><div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。