Maison > Article > développement back-end > Exemple de méthode PHP pour afficher l'arrangement ou la combinaison de plusieurs éléments
La permutation et la combinaison sont les concepts les plus fondamentaux de la combinatoire. Ce qu'on appelle l'arrangement signifie trier un nombre spécifié d'éléments à partir d'un nombre donné d'éléments. La combinaison fait référence au fait de retirer uniquement un nombre spécifié d'éléments d'un nombre donné d'éléments, quel que soit le tri. Le problème central des permutations et combinaisons est d’étudier le nombre total de situations possibles pour les permutations et combinaisons d’exigences données. La permutation et la combinaison sont étroitement liées à la théorie classique des probabilités.
Cet article présente principalement comment afficher l'arrangement ou la combinaison de plusieurs éléments en PHP. L'exemple de code est le suivant
<?php $arr = array('a','b','c','d'); $result = array(); $t = getCombinationToString($arr, 1); print_r($t); $t = getCombinationToString($arr, 2); $t2 = getunique($t); print_r($t2); $t = getCombinationToString($arr, 3); $t2 = getunique($t); print_r($t2); $t = getCombinationToString($arr, 4); $t2 = getunique($t); print_r($t2); function getunique($t){ $t2 = array(); //print_r($t); for($i=0;$i<count($t);$i++){ $count_list = array_count_values($t[$i]); $flag = 1; foreach($count_list as $ck=>$cv){ if($cv>1){ $flag = 0; break; } } if($flag){ sort($t[$i]); $flag2 = 1; if($t2){ foreach($t2 as $t2k=>$t2v){ if($t[$i]==$t2v){ $flag2 = 0; break; } } } if($flag2){ $t2[] = $t[$i]; } } } return $t2; } function getCombinationToString($arr, $m) { if ($m ==1) { return $arr; } $result = array(); $tmpArr = $arr; unset($tmpArr[0]); for($i=0;$i<count($arr);$i++) { $s = $arr[$i]; $ret = getCombinationToString(array_values($tmpArr), ($m-1), $result); foreach($ret as $row) { //$result[] = $s . $row; $temp = array(); $temp[] = $s; if(is_array($row)){ $temp = array_merge($temp,$row); }else{ $temp[] = $row; } sort($temp); $result[] = $temp; } } return $result; } ?>.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!