Maison  >  Article  >  développement back-end  >  Comment trouver tous les sous-ensembles d'un tableau en PHP

Comment trouver tous les sous-ensembles d'un tableau en PHP

PHPz
PHPzoriginal
2023-04-20 10:12:57794parcourir

PHP est un langage de script très puissant qui fournit de nombreuses fonctions pratiques, parmi lesquelles la fonction array_subset peut être utilisée pour obtenir tous les sous-ensembles d'un tableau. Ci-dessous, nous expliquerons comment l'utiliser.

Qu'est-ce qu'un sous-ensemble d'un tableau ?

En mathématiques, un sous-ensemble d'un ensemble est un sous-ensemble de celui-ci qui contient tout ou partie des éléments de l'ensemble d'origine. Par exemple, étant donné l'ensemble {1, 2, 3}, ses sous-ensembles incluent {1, 2, 3}, {1, 2}, {1, 3}, {2, 3} et {1}, {2} et {3}.

En PHP, un sous-ensemble d'un tableau fait référence à tout sous-tableau continu du tableau, y compris tout ou partie des éléments du tableau d'origine.

Comment utiliser la fonction array_subset

La fonction array_subset peut être utilisée pour obtenir tous les sous-ensembles d'un tableau. La syntaxe de cette fonction est la suivante :

array array_subset ( array $array , int $size [, bool $preserve_keys = FALSE ] )

Description du paramètre :

  • $array : le tableau du sous-ensemble à obtenir.
  • $size : Le nombre d'éléments dans le sous-ensemble.
  • $preserve_keys : s'il faut conserver les noms de clés du tableau d'origine, la valeur par défaut est FALSE.

Valeur de retour : renvoie un tableau représentant tous les sous-ensembles de $array.

Ce qui suit est un exemple :

$nums = [1, 2, 3, 4];
$subsets = array_subset($nums, 3);

print_r($subsets);

Le résultat est le suivant :

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [1] => Array
        (
            [0] => 2
            [1] => 3
            [2] => 4
        )

    [2] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 4
        )

    [3] => Array
        (
            [0] => 1
            [1] => 3
            [2] => 4
        )

)

Dans l'exemple ci-dessus, nous définissons un tableau $nums contenant 4 éléments, puis utilisons la fonction array_subset pour obtenir tous ses sous-ensembles, chaque sous-ensemble contient 3 éléments.

Comme le montre le résultat, la fonction array_subset renvoie un tableau bidimensionnel, où chaque sous-tableau représente un sous-ensemble de $nums.

Exemple d'application

Dans le développement réel, vous pouvez utiliser la fonction array_subset pour obtenir rapidement tous les sous-ensembles du tableau et traiter davantage ces sous-ensembles. Voici un exemple simple : supposons que nous ayons un tableau contenant plusieurs nombres et que nous devions maintenant trouver toutes les combinaisons dans lesquelles la somme est une valeur spécifiée.

Voici le code d'implémentation :

function find_combinations($nums, $target) {
    $count = count($nums);
    $result = array();
    for ($i = 1; $i < $count; $i++) {
        $subsets = array_subset($nums, $i);
        foreach ($subsets as $subset) {
            if (array_sum($subset) == $target) {
                $result[] = $subset;
            }
        }
    }
    return $result;
}

// 示例:
$nums = [1, 3, 5, 7, 9];
$target = 8;
$combinations = find_combinations($nums, $target);

print_r($combinations);

Le résultat est le suivant :

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 7
        )

    [1] => Array
        (
            [0] => 3
            [1] => 5
        )

)

Dans l'exemple ci-dessus, nous avons défini une fonction nommée find_combinations, qui reçoit un tableau $nums et une valeur cible $target, et renvoie un tableau , Contient tous les sous-tableaux dont la somme est $target.

Dans la fonction, nous parcourons d'abord la longueur du sous-ensemble, de 1 à $count - 1. Utilisez ensuite la fonction array_subset pour obtenir tous les sous-ensembles de longueur $i en $nums et parcourez-les si la somme des éléments du sous-ensemble est égale à $target, ajoutez-la au tableau résultat.

Comme le montre l'exemple ci-dessus, la fonction array_subset peut être utilisée pour obtenir rapidement tous les sous-ensembles du tableau, ce qui facilite la solution de certains problèmes algorithmiques et démontre également pleinement la flexibilité du langage PHP.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn