Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Удаление дублей из многомерных масивов. [3]
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Удаление дублей из многомерных масивов.

Страниц (3): « 1 2 [3]
 

31. difight - 04 Марта, 2014 - 12:52:56 - перейти к сообщению
EuGen пишет:
$result = array_reduce($data, function(&$current, $x)
{
$current[$x['uid']]=$x;
return $current;
}, array());

как в данном коде сделать так что бы повторяющиеся элементы вообще исключались из массива ?
32. difight - 05 Марта, 2014 - 13:40:47 - перейти к сообщению
difight пишет:
как в данном коде сделать так что бы повторяющиеся элементы вообще исключались из массива ?

Сделал совсем по другому, может быть кому-нибудь понадобиться
PHP:
скопировать код в буфер обмена
  1.  foreach ($newarr as $keys => $value) {
  2.                 $select = $newarr[$keys]['article'];
  3.                 $newkey = $keys + 1;
  4.                 for ($i = $newkey; $i <= count($newarr); $i++) {
  5.                     if ($newarr[$i]['article'] == $select) {
  6.                         unset($newarr[$keys]);
  7.                         unset($newarr[$newkey]);
  8.                     }
  9.                 }
  10.                
  11.             }
33. Dualist - 29 Декабря, 2016 - 18:07:06 - перейти к сообщению
Удаление дублей в 2-мерном массиве по столбцу $column
Оставляет последний встретившийся дублирующийся элемент

PHP:
скопировать код в буфер обмена
  1. function arr_uniq($arr,$column) {
  2.         if (is_array($arr)) {
  3.                 $uniq = array();
  4.                 $result = array();
  5.                 foreach ($arr as $key => $val) {
  6.                         $uniq[$key] = true;
  7.                         foreach ($arr as $k => $v) {
  8.                                 if (isset($val[$column]) && isset($v[$column]) && ($val[$column] == $v[$column]) && ($key != $k)) {
  9.                                         $uniq[$k] = false;
  10.                                 }
  11.                         }
  12.                 }
  13.                 foreach ($arr as $key => $val) {
  14.                         if ($uniq[$key]) {
  15.                                 $result[$key] = $val;
  16.                         }
  17.                 }
  18.                 return $result;
  19.         } else {
  20.                 return $arr;
  21.         }
  22. }

 

Powered by ExBB FM 1.0 RC1