Я использовал comb_array для обновления таблицы MySQL из файла CSV. Я думал, что все работает как чемпион, но, похоже, источник данных не удивительно. Существует несколько столбцов с тем же именем, и эти столбцы становятся ключами в массиве. Например, возьмем два массива:Лучший способ для comb_array с идентичными ключами?
array 1
[0]=>"name"
[1]=>"email"
[2]=>"shoe size"
[3]=>"email"
array 2
[0]=>"Jake Doe"
[1]=>"[email protected]"
[2]=>"10.5"
[3]=>""
, если я должен был использовать array_combine ($ массив1 $ array2) Я хотел бы получить:
["name"]=>"Jake Doe"
["email"]=>""
["shoe size"]=>"10.5"
Проблема заключается в том, что я, очевидно, предпочитают иметь электронную почту не переписываться пустым значением. То, что я могу сделать, это функция ниже. Я ищу только второй набор глаз. Это лучший способ сделать это? Я ненавижу, что у меня есть два вложенных ifs, но я не уверен, как бы я сделал его более чистым, или если это возможно.
//array_combine simply overwrites repeat keys, this only overwrites if the value is empty
//if the first instance of the key has a value, it ignores duplicate keys
function new_array_combine($key_array,$value_array){
foreach($value_array as $key=>$value){
if(array_key_exists($key_array[$key],$new_array)){
if(empty($new_array[$key_array[$key]]))$new_array[$key_array[$key]]=$value;
}else{
$new_array[$key_array[$key]]=$value;
}
}
return $new_array;
}
что делать, если '$ array2 [ 3] 'не было пустым? какую ценность вы хотите? – chiliNUT
Итак, каков желаемый результат? Как * сделать * вы хотите комбинировать значения, если есть дубликаты? – deceze
Извините за задержку. Меня беспокоит только то, что значение перезаписывается пустой строкой. Когда оба значения заполняются, это одно и то же значение. Не спрашивайте, почему это так, я только работаю с данными, которые мне дали ... yay! – jonlink