Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 - Fatal编程技术网

Php 如何替换多维数组中的重复值?

Php 如何替换多维数组中的重复值?,php,arrays,Php,Arrays,我有这样一个数组: [0] => array([location] => [10.1111111,106.2222222];); [1] => array([location] => [10.1111111,106.2222222];) [2] => array([location] => [10.3333333,106.444444444];) [3] => array([location] => [10.1111111,106.22222

我有这样一个数组:

[0] => array([location] => [10.1111111,106.2222222];);

[1] => array([location] => [10.1111111,106.2222222];)

[2] => array([location] => [10.3333333,106.444444444];)

[3] => array([location] => [10.1111111,106.2222222];)

[4] => array([location] => [10.3333333,106.444444444];)
我想保留第一个数组值(重复值),并用随机数替换剩余的所有重复值

[0] => array([location] => [10.1111111,106.2222222];)

[1] => array([location] => [10.54545422,106.136633434];)

[2] => array([location] => [10.3333333,106.444444444];)

[3] => array([location] => [10.323123232,106.656565654];)

[4] => array([location] => [10.44342266,106.87878787];)
我的代码,但似乎不起作用:

foreach($dataMap as $items) {

            $temp = array();
            foreach($items as $value) {

                if(!isset($temp[$value])) {
                    $temp[$value] = '[10.888888,106.999999]';
                }
            }
            $items['location'] = $temp;
        }

通常我创建一个列表或集合,并验证该列表中的每个值,如果存在,则替换十进制值并添加到列表或集合中,否则添加值,这样我们可以获得唯一的值

这就是我在python中的实现方式

import random

arr = list()
arr.append([10.1111111, 106.2222222])
arr.append([10.1111111, 106.2222222])
arr.append([10.3333333,106.444444444])
arr.append([10.1111111, 106.2222222])

print(arr)

# Set to check duplicates..
dup = set()
temp_arr = list()

for each_row in range(len(arr)):
    temp_arr.append([])
    for each_col in range(len(arr[each_row])):
        val = arr[each_row][each_col]
        if val in dup:  # found duplicate
            my_int = int(val)
            # new value
            new_val = round(random.uniform(my_int, my_int+1), 7)
            temp_arr[each_row].append(new_val)
            dup.add(new_val)
        else:
            dup.add(val)  # non duplicates.
            temp_arr[each_row].append(val)
print(temp_arr)

代码,是否尝试过?可能与“我想要替换而不是删除”重复,而此代码可能会回答问题,提供有关如何和/或为什么解决问题的附加上下文将提高答案的长期价值。@Alexander您可以在注释中找到详细信息。这足以让人理解。