PHP Spiral Matrix

Published: Jul 15, 2018

Last updated: Jul 15, 2018

This expects an installation on the system of phpunit.

Test File

Create php-spiral-matrix_test.php:

<?php require "php-spiral-matrix.php"; class PhpSpiralMatrixTest extends PHPUnit\Framework\TestCase { public function testTwoByTwoSprialMatrix() { $size = 2; $expected = array( array(1, 2), array(4, 3) ); $this->assertEquals($expected, sprialMatrix($size)); } public function testThreeByThreeSprialMatrix() { $size = 3; $expected = array( array(1, 2, 3), array(8, 9, 4), array(7, 6, 5) ); $this->assertEquals($expected, sprialMatrix($size)); } }

Spiral Matrix

Create binary-search-tree.php:

<?php function sprialMatrix($size) { $base = array_fill(0, $size, 0); $mat = array_fill(0, $size, $base); $count = 1; $startCol = 0; $endCol = $size - 1; $startRow = 0; $endRow = $size - 1; while ($startCol <= $endCol && $startRow <= $endRow) { // top row for ($i = $startCol; $i <= $endCol; $i++) { $mat[$startRow][$i] = $count; $count++; } $startRow++; // right col for ($i = $startRow; $i <= $endRow; $i++) { $mat[$i][$endCol] = $count; $count++; } $endCol--; // bottom row for ($i = $endCol; $i >= $startCol; $i--) { $mat[$endRow][$i] = $count; $count++; } $endRow--; // left col for ($i = $endRow; $i >= $startRow; $i--) { $mat[$i][$startCol] = $count; $count++; } $startCol++; } return $mat; }

Running Tests

Change into directory and run phpunit.phar php-spiral-matrix_test.php.

Personal image

Dennis O'Keeffe

Byron Bay, Australia

Share this post

Recommended articles

Dennis O'Keeffe

2020-present Dennis O'Keeffe.

All Rights Reserved.