ホームページ >バックエンド開発 >PHPチュートリアル >同じ長さの 2 つの配列があります。重複排除後にそれらの配列の一貫性を保つにはどうすればよいでしょうか?

同じ長さの 2 つの配列があります。重複排除後にそれらの配列の一貫性を保つにはどうすればよいでしょうか?

WBOY
WBOYオリジナル
2016-06-23 14:25:16977ブラウズ


$t1=Array ([0] =>南昌 [1] =>南昌 [2] =>甘州 [3] =>九江 [4] =>甘州 [5] =>九江 )
$t2=Array ( [0] => 2013-09-23 17:48:33 [1] => 2013-09-23 12:48:42 [2] => 2013-09- 21 17:48:23 [3] => 2013-09-12 08:40:03 [4] => 2013-09-23 10:28:22 : 28:13 )

これで $t1 と $t2 は両方とも同じ長さになりました。そしてそれらの間には対応関係があります。つまり、t1[0]とt2[0]です。 。 t1[1] と t2[1]...t1[i] と t2[i] は関連しています。

ここで、t1 の値が繰り返されないことを認識したいと思います。次に、t2 に対応します。重複がある場合は、時間の最小のものを t2 に保持します。
そして、新しい配列 t22 の値は小さいものから大きいものの順に並んでいます。
得られた結果は、
$t11=Array ( [0] => 九江 [1] => 贛州 [2] => 南昌 )
$t22=Array ( [0] => 2013- 09-12 08:40:03 [1] => 2013-09-21 17:48:23 [2] => 2013-09-23 12:48:42 )

または t1 と t2 を A にマージします二次元配列の方が実装しやすいです、ありがとうございます。


ディスカッションへの返信 (解決策)

$t1 = Array ( 0 => '南昌', 1 => '南昌', 2 => '赣州', 3 => '九江', 4 => '赣州', 5 => '九江'); $t2 = Array ( 0 => '2013-09-23 17:48:33', 1 => '2013-09-23 12:48:42', 2 => '2013-09-21 17:48:23', 3 => '2013-09-12 08:40:03', 4 => '2013-09-23 10:28:22', 5 => '2013-09-27 11:28:13' );foreach(array_map(null, $t1, $t2) as $r) {  if(! isset($t[$r[0]])) $t[$r[0]] = $r[1];  else $t[$r[0]] = min($t[$r[0]], $r[1]);}asort($t);$t11 = array_keys($t);$t22 = array_values($t);print_r($t11);print_r($t22);
Array
(
[0] => 九江
[1] => 贛州
[2] => 南昌
)
Array
(
[0] = > 2013-09-12 08:40:03
[1] => 2013-09-21 17:48:23
; 2013-09-23 12:48:42

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。