10分でできないと恥ずかしいプログラムをphpでやってみた

お久しぶりです。最近はUnityブログばっかりでこちらが全然更新できていませんでした。
反省。

さて、twitterでこんな話題があったので挑戦してみました

10分で出来ないと恥しいプログラムに挑戦してみた(Haskellで)

phpで挑戦。もっとスマートなやり方があるでしょうし、配れない時の処理の無駄加減とかがひどいですが、1時間くらいで出来たのでご容赦を。

<?php

$q1 = deal(3, "123123123");
print_r($q1);

$q2 = deal(4, "123123123");
print_r($q2);

$q3 = deal(6, "012345012345012345");
print_r($q3);

$q4 = deal(4,"111122223333");
print_r($q4);

$q5 = deal(1,"012345012345012345");
print_r($q5);

$q6 = deal(6,"01234");
print_r($q6);

$q7 = deal(2,"");
print_r($q7);

function deal( $player, $card ){
	
	$result = floor(strlen($card) / $player);
	
	$surplus = strlen($card) % $player;
	
	if($surplus != 0){
		$maxlen =  strlen($card) - $surplus;
	}else{
		$maxlen = strlen($card);
		}
			
	$array = array();
	$cnt = 0;
	
	for ($i = 0; $i < $maxlen; $i++ ){
		if($cnt == $player){
			$cnt = 0;
		}
			$number = (string)$array[$cnt];
			$number .= substr($card,$i,1);
			$array[$cnt] = $number;
			$cnt++;
		}
		
	if(strlen($card) < $player){
		
		$array = array();
		
		for ($i = 0; $i < $player; $i++ ){
			$array[$i] = "";
			}		
	}		
		
	return $array;	
		
}

?>

結果

Array
(
    [0] => 111
    [1] => 222
    [2] => 333
)
Array
(
    [0] => 12
    [1] => 23
    [2] => 31
    [3] => 12
)
Array
(
    [0] => 000
    [1] => 111
    [2] => 222
    [3] => 333
    [4] => 444
    [5] => 555
)
Array
(
    [0] => 123
    [1] => 123
    [2] => 123
    [3] => 123
)
Array
(
    [0] => 012345012345012345
)
Array
(
    [0] => 
    [1] => 
    [2] => 
    [3] => 
    [4] => 
    [5] => 
)
Array
(
    [0] => 
    [1] => 
)