Skip to content

Latest commit

 

History

History
100 lines (62 loc) · 1.61 KB

php_program_method.md

File metadata and controls

100 lines (62 loc) · 1.61 KB

#php编程思路之一

黄哥从2012年底从事python培训以来得到很多朋友的支持和认可。

2016年陆续推出php和golang培训视频。

##有一个这样的问题

有一个数组,$arr = array("A", "B", "C", "D");

请根据n循环输出下面的样式:假定n = 15

A

B

C

D

A

B

C

D

A

B

C

D

A

B

C

也就是说循环输出,每次输出C后,又从头A开始输出。

相信大家计数循环大家都能看得懂,但用计算循环来解决这样的问题,初学者会感觉无从下手。

##以下代码以命令行的方式运行:php begintoend.php

##代码1,用循环

<?php
    function echoBeginToend($arr, $n){
      $i = 1;
      $j = 0;
      while ($i < ($n + 1)){
        echo $arr[$j];
        echo "\n";
        $j += 1;
        if ($i % 4 == 0){
          $j = 0;
        }
        $i += 1;

      }

    }

    print("请输入: n\n");
    $n = trim(fgets(STDIN));
    $arr = array("A", "B", "C", "D");
    echoBeginToend($arr, $n);

##代码2 用php spl标准库中的队列

<?php

    function echoBeginToend($q, $n){
      for ($i=1; $i<=$n; $i++){
        $tmp = $q->dequeue();
        echo $tmp;
        echo "\n";
        $q->push($tmp);
    }
    }
    print("请输入: n\n");
    $n = trim(fgets(STDIN));
    $q = new SplQueue();
    $q->push('A');
    $q[] = 'B';
    $q[] = 'C';
    $q[] = 'D';
    echoBeginToend($q, $n);

黄哥php培训