有点奇怪的,所以我希望得到一个数组中的所有重复项,并将它们中的每一个保存在一个单独的数组中。这有点难以解释所以我会尝试一个例子。
$array = array('apple', 'apple', 'apple', 'orange', 'orange', 'banana');
我希望找到所有重复项(在这个例子中,苹果和橙子)并将每个重复保存在它们自己的单独数组中,之后将对其进行计数,以找出每个数组中每个副本的数量。< / p>
一旦我计算了它们,我将根据找到的数量运行一个mysqli查询(同一项目最多只能有6个)。
理想的输出示例是
$array1 to be ('apple', 'apple', 'apple'), $array2 to be ('orange', 'orange') and $array3 would be ('banana')
如果这个问题没有多大意义,我会提前道歉,但我很难解释。
答案 0 :(得分:1)
$count = [];
$array = ['apple', 'apple', 'apple', 'banana', 'banana', 'orange', 'orange'];
foreach ($array as $a) {
$count[$a]++;
}
print_r($count);
阵列( [apple] =&gt; 3 [banana] =&gt; 2 [orange] =&gt; 2)
然后你可以使用key =&gt;循环遍历一个数组;获得水果的价值#39;和发生。
编辑:如果您不区分大小写搜索,则需要大写/小写密钥。
答案 1 :(得分:1)
可以使用array_count_values()
和array_fill()
函数
$array = array('apple', 'apple', 'apple', 'orange', 'orange', 'banana');
// counts all the values
$count = array_count_values($array);
// result array
$result = array();
// Loop and push new array filled with values times count
foreach ($count as $key => $value) {
$result[] = array_fill(0, $value, $key);
}
// Print result
echo '<pre>';
print_r($result);