比方說,我有一個數組,其中有4個數組。我需要做的是取一個數字最多的數字,如果我有兩個或更多個數組相同的最大數組,我將它們合併。如何確定包含大多數項目的數組?
示例數組中,我們看到數組0
和3
的最大成員數爲3
。所以我要做的就是把它們結合起來。
Array
(
[0] => Array
(
[0] => 5
[1] => 6
[2] => 4
)
[1] => Array
(
[0] => 5
[1] => 6
)
[2] => Array
(
[0] => 4
)
[3] => Array
(
[0] => 6
[1] => 6
[2] => 9
)
)
這是我,它的工作原理但我認爲這是可以做到更好。
// Getting arrays that have most members in it
$max = count($groupArray[0]);
foreach ($groupArray as $group) {
if (count($group) > $max) {
$max = count($group);
}
}
// Taking all those arrays and combining them in one
$finishArray = array();
foreach ($groupArray as $group) {
if (count($group) == $max) {
foreach ($group as $key) {
array_push($finishArray, $key);
}
}
}
那麼它可以做得更好或這是它應該是什麼樣子?
相反array_push'ing陣列中的所有項目到另一個陣列,可以使用array_merge(http://php.net/manual/en/function.array-merge.php)。這是我乍看之下唯一改變的事情。 – 2012-03-23 14:55:25