Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.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_Multidimensional Array - Fatal编程技术网

Php 是否从数组中删除多维元素的值(如果重复)?

Php 是否从数组中删除多维元素的值(如果重复)?,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有一个多维数组,看起来像这样 $input = Array ( [222] => Array ( 'id' => 222 'val' => 'def'

我有一个多维数组,看起来像这样

$input = Array
                      (
                          [222] => Array
                              (
                                  'id' => 222
                                  'val' => 'def'
                                  'more' => 'test'
                              ),
                        [223] => Array
                              (
                                  'id' => 223
                                  'val' => 'aaa'
                                  'more' => 'aaa'
                              ),
                        [224] => Array
                              (
                                  'id' => 224
                                  'val' => 'aaa'
                                  'more' => 'ddd'
                              )
                        [225] => Array
                              (
                                  'id' => 225
                                  'val' => 'def'
                                  'more' => 'test'
                              )
            );
*重复,因为其键
val
more
的值重复

我想删除重复的值(在本例中为$input[222]和$input[225]),因此结果应仅为

$res = Array
                      (
                          [222] => Array
                              (
                                  'id' => 222
                                  'val' => 'def'
                                  'more' => 'test'
                              ),
                        [223] => Array
                              (
                                  'id' => 223
                                  'val' => 'aaa'
                                  'more' => 'aaa'
                              ),
                        [224] => Array
                              (
                                  'id' => 224 
                                   'val' => 'aaa'
                                  'more' => 'ddd'
                              )
            );
有人知道怎么做吗

谢谢

$newInput=array();
foreach($k=>$v)的$newInput[$v['val'].$v['more']]=$v;
//你可以在这里停下来。
$newInputNum=array();
foreach($newInput as$k=>$v)$newInputNum[$v['id']]]=$v;
echo“”;print_r($newInputNum);echo“”;

您必须以编程方式执行此操作(在数组中循环,保留遇到的ID列表,并根据该列表检查每个条目)。但是,如果您是从数据库获取此数据,则可能会修改查询以删除重复项。请尝试使用
顺序
来获得所需的结果。类似于这样的内容:
按id按顺序选择id、val,更多信息请按[时间戳或其他顺序确定字段]
我无法修改查询,因为此结果仅用于我的案例。其他将允许显示结果重复的结果。因此我的方法是使用数组。谢谢
$newInput = array();
 foreach($input as $k => $v) $newInput[$v['val'].$v['more']] = $v;
 //You may stop here. 
 $newInputNum = array();
 foreach($newInput as $k => $v) $newInputNum[$v['id']] = $v;

 echo "<pre>";print_r($newInputNum  );echo "</pre>";