1

在 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 中做到这一点?

4

4 回答 4

5

您可以使用array_count_values找出每个元素在数组中出现的次数。你不会有{1, 1, 1},但你会拥有[1] => 3我希望对你使用同样的东西。

于 2013-06-11T08:58:46.243 回答
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
        )

)
于 2013-06-11T09:00:25.843 回答
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;
}

演示

于 2013-06-11T09:04:13.057 回答
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重置数组键。

文档:array_values,array_unique

于 2013-06-11T09:44:41.123 回答