Back to home

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

    @dennisokeeffe92
    • Melbourne, Australia

    Hi, I am a professional Software Engineer. Formerly of Culture Amp, UsabilityHub, Present Company and NightGuru.
    I am currently working on Visibuild.

    1,200+ PEOPLE ALREADY JOINED ❤️️

    Get fresh posts + news direct to your inbox.

    No spam. We only send you relevant content.

    PHP Spiral Matrix

    Introduction

    Share this post