我需要分配(傳播/採取輪)陣列每兩個值不同分配(擴)陣列每兩個值不同
例如
array('cat','cat','cat','cat','dog','cat','cat','apple','mouse')
我需要得到的東西像
array('cat','dog','cat','apple','cat','mouse','cat','cat','cat')
如果最後一個元素是相同的=我有三個'貓'在數組的末尾我需要刪除它並將其提取到其他數組中。
而且需要儘可能少的刪除元素。
哪種方法可以在PHP中實現?謝謝。
此數組可以有任何值。任何值的計數。有不止一個重複的詞:五次'貓',十次'狗',兩次'la-la-la'等等。 我需要它分配給
elem1 != elem2
elem3 != elem4
elem5 != elem6
elem7 != elem8
如果將留下的價值觀和我無法分配是這樣,我需要將其刪除,並顯示該值(以我看到多少和哪些值左)。
我與shuffle PHP功能的解決方案:
$source = array('cat','cat','cat','cat','dog','cat','cat','cat','apple','apple','apple','apple','apple','apple','apple','apple','apple','apple','cat','cat','cat','cat','cat','cat','cat','mouse');
while (!empty($source)){
while ($source[ 0 ] == $source[ 1 ]) {
shuffle($source); // it's ruefully
$arr_contains_same_value = false;
for($i=1; $i<count($source);$i++) {
if ($source[0] != $source[$i]){
$arr_contains_same_value = true;
break;
}
}
if ($arr_contains_same_value == false){ break 2; }
}
if (count($source) == 1) break ;
print $source[0]."\n";
print $source[1]."\n";
unset($source[ 0 ], $source[ 1 ]);
$source = array_values($source);
}
print "Was left:";
var_dump($source);
而對於二維數組:
$source = array(
array("help people", "cat"),
array("force", "tiger"),
array("Tom", "cat"),
array("black", "cat"),
array("Jerry", "mouse"),
array("UNIX", "cat"),
array("young", "lion"),
array("angry", "dog"),
array("kind", "dog")
);
while (!empty($source)){
while ($source[ 0 ][1] == $source[ 1 ][1]) {
shuffle($source); // it's ruefully
$arr_contains_same_value = false;
for($i=1; $i<count($source);$i++) {
if ($source[0][1] != $source[$i][1]){
$arr_contains_same_value = true;
break;
}
}
if ($arr_contains_same_value == false){ break 2; }
}
if (count($source) == 1) break;
print $source[0][1]."\n";
print $source[1][1]."\n";
unset($source[ 0 ], $source[ 1 ]);
$source = array_values($source);
}
print "Was left:\n\n";
var_dump($source);
你有什麼tryed這麼遠嗎?向我們展示您的研究幫助每個人 – 2014-12-05 16:22:14
如果有多個重複單詞,會發生什麼情況,例如:數組('貓','貓','貓','貓','狗','狗','狗」, '貓', '貓', '蘋果', '鼠標');'?這是一個有效的場景嗎? – ymas 2014-12-05 16:53:40
謝謝。往上看。是的,有不止一個重複單詞。 – user3679891 2014-12-05 17:00:00