php多个数组求组合数

本文介绍了一种PHP实现获取多个数组组合的方法,通过自定义类`arrayCombination`实现数组元素的组合,并展示了如何使用该类进行实例化和调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php
/**
 * 获取多个数组的组合
 * @list  二维数组$list [] = array (1,2,3); 
 * return  array
 */
class arrayCombination{

    private $Combination;

    public function __construct($list = array()){

$list = array_values($list);
$this->GetForeach($list);

}
    /** 
     *  拦截器
     * @param $name 成员属性名称
     * @return 成员属性
     */
    public function __get($name){

if(!empty($this->$name)){
return $this->$name;
}
}
     /**
      * 调用getSulie完成组合
      * @param type $list
      */   
    private function GetForeach($list){        
        foreach($list[0] as $v){
            $this->getSulie($list,$v,1);
        }
    }
    /**
     * 实现组合
     * @param type $list
     * @param type $content
     * @param type $deep
     * @return type
     */
    private function getSulie($list,$content,$deep){
        $i=0;
        if($deep>count($list)){
            return;
        }
        foreach($list as $k=>$v){
            if($i==$deep){
                foreach($list[$k] as $vv){
                    $vv = $content.$vv;
                    if($deep==count($list)-1){
                        $this->Combination[] =  $vv;
                    }else {
                        $this->getSulie($list,$vv,$deep+1);
                    }
                }
                break;
            }
            $i++;
        }
        return $Combination;
    }
}


/**
 * 使用例子
 * $list [] = array (1,2,3);
 * $list [] = array (1,2);
 * $list [] = array (1,2,3,4);
 * $list [] = array ('a','b');
 * $list [] = array ('A','B');
 * $s = new arrayCombination($list);
 * print_r($s->Combination);
 */

?>

文章来源,北京羲和时代www.ixiera.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羲和时代

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值