php 唯一/组关联数组

标签 php

我想删除以下数组的重复项。我想按第一个值分组,然后重建索引。

Array
(
    [0] => Array
        (
            [title] => California
            [state_id] => 1
        )

    [1] => Array
        (
            [title] => California
            [state_id] => 1
        )

    [2] => Array
        (
            [title] => New Mexico
            [state_id] => 2
        )

    [3] => Array
        (
            [title] => Washington
            [state_id] => 3
        )

    [4] => Array
        (
            [title] => Montana
            [state_id] => 4
        )

    [5] => Array
        (
            [title] => Montana
            [state_id] => 4
        )
)

Array
(
    [0] => Array
        (
            [title] => California
            [state_id] => 1
        )

[2] => Array
    (
        [title] => New Mexico
        [state_id] => 2
    )

[3] => Array
    (
        [title] => Washington
        [state_id] => 3
    )

[4] => Array
    (
        [title] => Montana
        [state_id] => 4
    )

)

重建 key

Array
(
    [0] => Array
        (
            [title] => California
            [state_id] => 1
        )

    [1] => Array
        (
            [title] => New Mexico
            [state_id] => 2
        )

    [2] => Array
        (
            [title] => Washington
            [state_id] => 3
        )

    [3] => Array
        (
            [title] => Montana
            [state_id] => 4
        )

)

最佳答案

$array = array_values(array_combine(array_map(function ($i) { return $i['title']; }, $array), $array));

  • 提取title键(array_map)
  • 使用提取的标题作为新数组的键并将其与旧数组组合 (array_combine),这会删除数组的重复项(键必须是唯一的)
  • 通过 array_values 运行结果,丢弃键

分割:

$keys    = array_map(function ($i) { return $i['title']; }, $array);
$deduped = array_combine($keys, $array);
$result  = array_values($deduped);

对于 PHP 5.2,您需要像这样编写匿名回调函数:

array_map(create_function('$i', 'return $i["title"];'), $array)

关于php 唯一/组关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7231260/

相关文章:

php - 上个月和下个月的报告

java - 计算平均值的简单数学公式

php - 在 PHP 中使用正则表达式删除嵌套的括号

php - 抓取特定的页面和数据,使其可搜索

php - 主机检测到恶意 PHP 文件

php - 通过 jQuery 提交表单后 View 未加载

php - 连接 3 个表 mysql php

php - php 的表单问题。动态选择的选项和复选框

PHP + MySQL部署

php - 从 PHP 使用 linux 'dialog' 命令