Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取具有不同值的数组的更优雅的方法_Php_Arrays_Distinct Values - Fatal编程技术网

Php 获取具有不同值的数组的更优雅的方法

Php 获取具有不同值的数组的更优雅的方法,php,arrays,distinct-values,Php,Arrays,Distinct Values,我有这个阵列: $array[] = [ 'a' => $a, 'b' => $b, ]; 该数组包含10个条目,$a可以在其中多次使用相同的值,我只需要其中一个条目就可以插入db 我无法在抛出时使数组_unique正常工作 array to string conversion 尝试像这样使用时出错 $result = array_unique($array); 现在,我做了一个小小的foreach循环,这样做感觉不对: $z = [];

我有这个阵列:

$array[] = [
      'a' => $a,
      'b' => $b,
];
该数组包含10个条目,$a可以在其中多次使用相同的值,我只需要其中一个条目就可以插入db

我无法在抛出时使数组_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作为插入


有人能告诉我如何区分数组值的正确方向吗?

基于二维数组,您需要:

$array = array_map('array_unique', $array);
或者,如果不需要二维数组,只需使用:

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

然后:$array=array\u unique$array

这应该适合您:

$result=array\u唯一的$array;这不起作用,因为您有一个多维数组

<?php


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

    ];

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

?>

没有提到的一点是,如果您可以自己管理密钥,那么阵列是在unique中构建的。关联数组只能具有一次键。所以我想做的是使用主键或唯一标识符作为键

不能使用具有相同键的数组

array(
     'a' => $a
     'a' => $b
)
因为密钥a已经是唯一标识符。如果您遵循。

您确定您的意思不是$array,而是$array[]吗?
array(
     'a' => $a
     'a' => $b
)