在 PHP 中,我有一个 id 数组
$ids = array(1, 1, 1, 2, 2, 3, 3);
我只是想将 1 which will become1, 1, 1
和 2 become2, 2
和 3 become分开3, 3
。
我怎样才能在 PHP 中做到这一点?
您可以使用array_count_values找出每个元素在数组中出现的次数。你不会有{1, 1, 1}
,但你会拥有[1] => 3
我希望对你使用同样的东西。
这可以通过一个简单的循环轻松完成:
$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
)
)
你可以这样做
$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;
}
我了解您想要不同的数组值(不重复)。如果是这样,那么这里是:
$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
重置数组键。