3

TURNS OUT THAT MY MATH OPERATION WAS THE WRONG ONE! READ PHP array combinations FOR AN EXAMPLE OF COMBINATION


I Am searching the Web now for 3 weeks ( including SO) i dont find someone who has already asked or solved it.

I need a Permutation of an Array in PHP of only uniq ordered values.

$array = array('Number1', 'Number2', 'Number3', 'Number4', 'Number5', 'Number6');

usually a permutation will be like

.1 Number1, Number2, Number3, ...; .2 Number1, Number2, Number4, ...; .3 Number2, Number4, Number1, ...;

But i need it ordered and uniq. so the 3rd line would be ordered to

.1 Number1, Number2, Number3, ...; .2 Number1, Number2, Number4, ...; .3 Number1, Number2, Number4, ...;

And that means Row 3 is NOT uniq and will not be saved in a new array.

2nd Example

array('A','B','C') A AB AC ABC ACB B BC BA BCA BAC C CA CB CAB CBA is wrong for me

I need the output like this

A B C AB BC AC ABC

I kinda solved it so far. BUT my solution is like stoneage and just sorts all new array_permutations and array_filter them. thats like 100 Years calculation time cause 6 numbers permutated with all possabilitys is like X^10 -.-

Please help me guys.

btw: its my first post here, so be gentle :D

1 Answer 1

1

I strongly advise you to take a look the python module called itertools.

It's a module for efficient looping and constains numerous operations involving permutations, combinatorics and more.

Despite being a module written in python language it shouldn't difficult to port the code to PHP language. However, since several of these operations may require considerable memory usage is a good idea to use PHP 5.5+, because in this version generators were included.

Sign up to request clarification or add additional context in comments.

2 Comments

Ur answer kinda helped me :D Cause i was looking for the WRONG mathematical operation. What i need is "Combination" not "Permutation" that i could read out of ur links . so thx because : permutations('ABCD', 2) AB AC AD BA BC BD CA CB CD DA DB DC // but combinations('ABCD', 2) AB AC AD BC BD CD mathsisfun.com/combinatorics/…
I'm glad it helped you.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.