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 :: Версия для печати :: Перебор значений из массива с разными вариантами
Форумы портала PHP.SU » » Вопросы новичков » Перебор значений из массива с разными вариантами

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

1. fudeglan - 27 Мая, 2016 - 09:58:27 - перейти к сообщению
Нужно перебрать массив со значениями:
Допустим есть массив


на выходе должно получится
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. abc
  3. bac
  4. bca
  5.  
  6. bac
  7. abc
  8. acb
  9.  
  10. cab
  11. acb
  12. abc
  13.  
2. andrewkard - 27 Мая, 2016 - 11:06:22 - перейти к сообщению
На форуме уже видел решение, вот еще
http://stackoverflow[dot]com/questio[dot][dot][dot]tations-in-a-set
http://forum.php.su/topic.php?fo...9&topic=5421
поищите
3. fudeglan - 27 Мая, 2016 - 12:28:57 - перейти к сообщению
andrewkard пишет:
На форуме уже видел решение, вот еще
http://stackoverflow[dot]com/questio[dot][dot][dot]tations-in-a-set
http://forum.php.su/topic.php?fo...9&topic=5421
поищите


Спасибо. То что нужно
(Добавление)
Код этот. Возможно кому не будь да пригодится
PHP:
скопировать код в буфер обмена
  1.  
  2. function permuteUnique($items, $perms = [], &$return = []) {
  3.     if (empty($items)) {
  4.         $return[] = $perms;
  5.     } else {
  6.         sort($items);
  7.         $prev = false;
  8.         for ($i = count($items) - 1; $i >= 0; --$i) {
  9.             $newitems = $items;
  10.             $tmp = array_splice($newitems, $i, 1)[0];
  11.             if ($tmp != $prev) {
  12.                 $prev = $tmp;
  13.                 $newperms = $perms;
  14.                 array_unshift($newperms, $tmp);
  15.                 permuteUnique($newitems, $newperms, $return);
  16.             }
  17.         }
  18.         return $return;
  19.     }
  20. }
  21.  
  22. $permutations = permuteUnique(array('a', 'b', 'c'));
  23.  

 

Powered by ExBB FM 1.0 RC1