ホームページ >バックエンド開発 >PHPチュートリアル >PHP は再帰を使用して部分配列を生成します (コード例)

PHP は再帰を使用して部分配列を生成します (コード例)

藏色散人
藏色散人オリジナル
2019-03-20 14:31:562668ブラウズ

PHP は再帰を使用して部分配列を生成します (コード例)

配列が指定された場合、再帰を使用して、指定された配列の可能なすべての部分配列を生成します。この記事では、PHP を使用してこの機能を実装する方法を紹介します。

例:

输入:[1,2,3]
输出:[1],[1,2],[2],[1,2,3],[2,3],[3]
输入:[1,2]
输出:[1],[1,2],[2]

メソッド:

2 つのポインタ start と end を使用して、配列の開始点と終了点を維持します。以下に示します。ステップ操作:

1. 配列の末尾に到達した場合は、停止します

2. start が end より大きい場合は、終了インデックスを増やします

3. Startインデックスから部分配列を終了まで出力し、開始インデックスをインクリメントします

以下は、上記のメソッドの PHP コード実装の例です:

<?php 
// 使用递归函数为给定数组打印所有可能的子数组
function printSubArrays($arr, $start, $end) 
{  
    // 如果我们已经到达数组的末尾,就停止
    if ($end == count($arr)) 
        return; 
      
    // 增加端点并从0开始
    else if ($start > $end) 
        return printSubArrays($arr, 0,  
                              $end + 1); 
          
    // 打印子数组并增加起始点
    else
    { 
    echo "["; 
    for($i = $start; $i < $end + 1; $i++) 
    { 
        echo $arr[$i]; 
        if($i != $end) 
        echo ", "; 
    } 
    echo "]\n"; 
        return printSubArrays($arr, $start + 1,  
                                    $end); 
    } 
}  
  
$arr = array(1, 2, 3); 
printSubArrays($arr, 0, 0);

出力:

[1]
[1,2]
[2]
[1,2,3]
[2,3]
[3]

時間計算量のプロパティ: PHP は再帰を使用して部分配列を生成します (コード例)

関連する推奨事項: 「PHP チュートリアル

この記事は、再帰を使用して生成する方法の紹介です。 PHP のサブ配列。それが必要な友人の役に立てば幸いです。役に立ちます!

以上がPHP は再帰を使用して部分配列を生成します (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。