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您可以在注释中找到详细信息。这足以让人理解。