Php 寻找数组';什么是函数名?

Php 寻找数组';什么是函数名?,php,arrays,Php,Arrays,我有一个n值数组: $input = array( object_a, object_b, object_c, ..., object_n );</code> 我试图找到生成此输出的函数的名称: $output = array( array( object_a ), array( object_b ), ..., array( object_n ), array( object_a, object_b ), array( object_a, object_c ),

我有一个n值数组:

$input = array( object_a, object_b, object_c, ..., object_n );</code>
我试图找到生成此输出的函数的名称:

$output = array(
    array( object_a ), array( object_b ), ..., array( object_n ),
    array( object_a, object_b ), array( object_a, object_c ), ..., array( object_a, object_n ),
    array( object_b, object_c ), ..., array( object_b, object_n ),
    ...
    array( object_a, object_b, object_c), ..., array( object_a, object_b, object_n),
    ...
    array( object_a, object_b, object_c, ..., object_n)
);
它看起来像笛卡尔积,但事实并非如此

我尝试对该函数进行编程,并成功创建了以下部分结果,但我仍然坚持使用“中间”分布:

$output = array(
   array( object_a ), array( object_b ), ..., array( object_n ),
   array( object_a, object_b, object_c, ..., object_n)
);

我认为中间部分可以通过函数递归调用生成,但我没有关于如何生成的线索

多谢各位

以下是我的功能的开始:

/**
 *
 * @param array $array this input array
 * example:
 *     $array = array(
 *         A, B, C
 *     );
 *
 * @return array the result array
 * example:
 *     $result = array(
 *         array( A ),          ok
 *         array( B ),          ok
 *         array( C ),          ok
 *         array( A, B ),
 *         array( A, C ),
 *         array( B, C ),
 *         array( A, B, C )     ok
 *     )
 */
private function distribute($array)
{
    $result = array();

    if (is_array($array)) {
        // add array( 'A', 'B', 'C' ) to result
        $result[] = $array;

        if (count($array)>1) {
            // add array( 'A' ), array( 'B' ), array( 'C' ) to result
            foreach ($array as $value) {
                $result[] = array($value);
            }

            // help me to complete this function
        }
    }

    return $result;
}

注释帮助我找到函数名

这是上面答案的链接

这是指php手册

那么你想要所有可能的排列?所有子集的集合?在你的注释中,我找到函数名@maxantz,那么你有你的解决方案了吗?