在PHP中我有一个id
的数组$ids = array(1, 1, 1, 2, 2, 3, 3);
我只是希望将1成为1, 1, 1
,将2成为2, 2
,将3成为3, 3
。
我怎么能用PHP做到这一点?
答案 0 :(得分:5)
您可以使用array_count_values找出每个元素在数组中出现的次数。你不会有{1, 1, 1}
,但是你会[1] => 3
,我希望你能使用同样的东西。
答案 1 :(得分:4)
这可以通过简单的循环轻松完成:
$ids = array(1, 1, 1, 2, 2, 3, 3);
foreach($ids as $id){
$new[$id][] = $id;
}
print_r($new);
<强>输出:强>
Array
(
[1] => Array
(
[0] => 1
[1] => 1
[2] => 1
)
[2] => Array
(
[0] => 2
[1] => 2
)
[3] => Array
(
[0] => 3
[1] => 3
)
)
答案 2 :(得分:3)
你可以这样做
$ids = array(1, 1, 1, 2, 2, 3, 3);
foreach($ids as $key) {
//Calculate the index to avoid duplication
if(isset(${"arr_$key"})) $c = count(${"arr_$key"}) + 1;
else $c = 0;
${"arr_$key"}[$c] = $key;
}
答案 3 :(得分:2)
我知道您需要不同的数组值(不重复)。如果是这样,那么这就是:
$ids = array(1, 1, 1, 2, 2, 3, 3);
$distinct_ids = array_values(array_unique($ids));
将输出设为
array (size=3)
0 => int 1
1 => int 2
2 => int 3
array_unique
从数组中删除重复值,而array_value
重置数组键。