Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

php怎么求所有数组子集

作者:若此生已赞。   发布日期:2024-01-31   浏览:137

要求一个数组的所有子集,可以使用递归的方式来实现。以下是一个示例代码:

function subsets($arr) {
    $result = [[]]; // 初始化结果集,包含一个空集

    foreach ($arr as $num) {
        $count = count($result); // 当前结果集的长度
        for ($i = 0; $i < $count; $i++) {
            $subset = $result[$i]; // 取出当前的子集

            // 将当前元素加入到子集中
            $subset[] = $num;

            // 将新的子集加入到结果集中
            $result[] = $subset;
        }
    }

    return $result;
}

$arr = [1, 2, 3];
$subsets = subsets($arr);
print_r($subsets);

输出结果为:

Array
(
    [0] => Array
        (
        )

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

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

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

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

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

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

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

)

以上代码通过循环遍历数组中的每个元素,并将其加入到当前已有的子集中,然后将新的子集加入到结果集中。最终得到的结果集即为原数组的所有子集。

上一篇:php flock() 函数锁定或释放文件。

下一篇:php求数组值的总和怎么求

大家都在看

php session用法

phpisset函数

php后端

php爬虫框架

php读取csv文件

php 三元表达式

php文件加密

php 拆分字符串

php pcntl

php ||

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站