Есть массив
Array (
[0] => Array ( [msisdn] => 79112221122 [called] => 7234346383 [dates] => 2018050108 [duration] => 13 )
[1] => Array ( [msisdn] => 79112221122 [called] => 7234346383 [dates] => 2018050108 [duration] => 12 )
)
Нужно убрать дубли по 3 ключам.
Т.е если ["msisdn"] и ["called"] и ["dates"] одинаковые, то оставляем из этих элементов массива только один (какой не важно первый или второй).
Т.е нужно как бы выполнить array_unique, но только для ["msisdn"] и ["called"] и ["dates"].
Правда может быть и более двух дублей таких элементов массиве.
$used = [];
$output = array_filter($input, function ($value) use(&$used){
$key = $value['msisdn'].$value['called'].$value['dates'];
if(isset($used[$key])) return false;
return $used[$key] = true;
});
Можно, сначала посчитать хэш для необходимых полей, а потом по их индексам сделать выборку из начального массива
$test = [
["msisdn" => 1,
"called" => 2,
"dates" => 3,
"duration" => 13,
],
["msisdn" => 1,
"called" => 2,
"dates" => 3,
"duration" => 12,
],
["msisdn" => 1,
"called" => 0,
"dates" => 3,
"duration" => 12,
],
];
$test_array = [];
foreach ($test as $key => $test_item) {
$test_array[$key] = hash(
'tiger192,3',
$test_item['msisdn'].$test_item['called'].$test_item['dates']);
}
$result_index = array_unique($test_array);
$result_array = [];
foreach ($result_index as $result_key => $result_item) {
echo $result_key . "<br>";
$result_array[$result_key] = $test[$result_key];
}
echo "<pre>";
print_r($result_array);
echo "</pre>";
function unique_multidim_array($array, $key) {
$temp_array = array();
$i = 0;
$key_array = array();
foreach($array as $val) {
if (!in_array($val[$key], $key_array)) {
$key_array[$i] = $val[$key];
$temp_array[$i] = $val;
}
$i++;
}
return $temp_array;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Fatal error: Uncaught Error: Using $this when not in object context in H:\OSPanel\domains\KingKino\indexphp:13 Stack trace: #0 H:\OSPanel\domains\KingKino\index
В документации по сабжу есть пример создания списка $result=$uni->createList(Array("title"=>"OurNewList")); Я настроил свои - работаетЗначит подключение настроено...
Я не силен в sql поэтому не могу понять куда копать и реально ли такой запрос создать?
уже неделю мучаюсь не могу не как найти решение! =( Проблема в следующем - есть интернет магазин на Woocommerce в базе данных я создал новый столбец...