trivialmatters/square-matrix

提供流畅OOP API的便捷库,用于处理方阵

2.0.0 2016-08-21 08:35 UTC

This package is not auto-updated.

Last update: 2024-09-24 22:36:38 UTC


README

Build Status SensioLabsInsight

方阵

这是一个PHP库,旨在提供流畅的API,使处理方阵变得更加容易。

要求

  • PHP 7或更高版本

版本

此项目遵循semver

安装

  • 在您的composer.json中添加库
$ composer require trivialmatters/square-matrix

用法

<?php

require_once __DIR__.'/vendor/autoload.php';

$data = <<<EOF
3
11 2 4
4 5 6
10 8 -12
EOF;

// or create your own data provider
$data = new Gkirtsou\DataProvider\StringDataProvider($data);
$data->calculateRowsAndColumns();

/**
 * [
 *   [11, 4, 10]
 *   [2, 5, 8]
 *   [4, 6, -12]
 * ]
 */
$data->getColumns();

/**
 * [
 *   [11, 2, 4]
 *   [4, 5, 6]
 *   [10, 8, -12]
 * ]
 */
$data->getRows();

$squareMatrix = new Gkirtsou\SquareMatrix($data);

// get numbers from first column (don't forget PHP starts counting from zero!)
$squareMatrix->getNumbersByColumn(0);

// get numbers from first row (don't forget PHP starts counting from zero!)
$squareMatrix->getNumbersByRow(0);

// diagonal difference
$diagonalDifference = new \Gkirtsou\Diagonal\DiagonalDifference($squareMatrix);

// find the diagonal difference
$diagonalDifference->findDiagonalDifference(); // returns '15'

// find primary diagonal (left to right): returns [11, 5, -12]
$diagonalDifference->findDiagonal(\Gkirtsou\Diagonal\DiagonalDifference::PRIMARY_TYPE);

// find secondary diagonal (right to left): returns [4, 5, 10]
$diagonalDifference->findDiagonal(\Gkirtsou\Diagonal\DiagonalDifference::SECONDARY_TYPE);

贡献

想要贡献?太棒了!请创建一个问题追踪来讨论此事,并创建一个带有您更改的Pull Request。别忘了编写测试! :)

安装

  • 克隆仓库
$ git clone git@github.com:trivialmatters/square-matrix.git
$ composer install --prefer-dist -o -vvv

测试

您可以使用PHPUnit运行测试

$ vendor/bin/phpunit -c phpunit.xml.dist tests