php - 获取具有不同值的数组的更优雅的方式

标签 php arrays distinct-values

我有这个数组:

$array[] = [
      'a' => $a,
      'b' => $b,
];

该数组包含 10 个条目,$a 可以多次使用相同的值,而我只需要其中一个条目来进行数据库插入。

我无法让 array_unique 正常工作,因为它抛出了

 array to string conversion

尝试使用它时出错

 $result = array_unique($array);

我现在做了一个小的 foreach 循环,感觉这样做是错误的:

    $z = [];
    foreach ($array as $x) {

        if (@!in_array($x['a'],$z)) {
            $z[] = $x['a'];
        }
    }

然后我使用 $z 进行插入。

有人能给我指出如何区分数组值的正确方向吗?

最佳答案

这应该适合你:

($result = array_unique($array); 这不起作用,因为你有一个多维数组!)

<?php


    //Example data
    $array[] = [
          'a' => 1,
          'b' => 1,
          'c' => 1,
          'd' => 2,
          'e' => 2,

    ];

    $array = array_map("array_unique", $array);
    print_r($array);

?>

输出:

Array ( [0] => Array ( [a] => 1 [d] => 2 ) )

关于php - 获取具有不同值的数组的更优雅的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27992158/

相关文章:

php - mysql 触发器的奇怪行为

java - 此处不允许使用数组初始值设定项

mongodb - 独特的MongoDB函数-如何使用与众不同的标准

c# - 将 Distinct 与自定义对象列表一起使用

javascript - 如何使用数据数组填充 HTML 表格?

mysql - 从两列中选择不同的值

php - preg_match() 和 preg_replace() 慢吗?

php - 显示 2 个表中的数据 - 此集合实例上不存在属性 [名称]

php - mySQL 删除功能的问题

arrays - Swift 字典扩展数组 sortInPlace