simondevelop/array-organize

Php library for easy sorting of data, generate html table and more.

0.2.1 2021-08-19 14:29 UTC

README

version Minimum PHP Version Github Actions PHP codecov GitHub license FOSSA Status

array-organize

Php library for easy sorting of data, generate html table and more.

composer require simondevelop/array-organize

Example

<?php
// index.php
require "vendor/autoload.php";
use SimonDevelop\ArrayOrganize;

$data = [
  ["id" => 2, "name" => "example 5"],
  ["id" => 1, "name" => "example 5"],
  ["id" => 3, "name" => "example 3"],
  ["id" => 6, "name" => "example 5"],
  ["id" => 5, "name" => "example 3"],
  ["id" => 4, "name" => "example 6"],
  ["id" => 7, "name" => "example 6"],
  ["id" => 8, "name" => "example 7"],
  ["id" => 9, "name" => "example 7"],
  ["id" => 10, "name" => "example 5"]
];

if (isset($_GET['p'])) {
  $page = $_GET['p'];
} else {
  $page = 1;
}

// Init object with data, number by page and current page number
$obj = new ArrayOrganize($data, 3, $page);

// Sort data
$obj->dataSort("id", "ASC");

// Filter data
// $obj->dataFilter(["name" => "example 5"]);

// Css class for the table balise (example with bootstrap 4)
$cssClass = ['table', 'table-striped'];

// Settings of pagination
$pager = [
  "position" => "bottom",
  "lang" => [
    "previous" => "<< Previous",
    "next" => "Next >>"
  ],
  "cssClass" => [
    "ul" => "pagination",
    "li" => "page-item",
    "a" => "page-link",
    "disabled" => [
      "li" => "disabled"
    ],
    "active" => [
      "li" => "active"
    ]
  ],
  "url" => "index.php?p={}"
];

?>

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>ArrayOrganize</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css"
    integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous">
  </head>
  <body>
    <div class="container">
      <?php
        // Generate html table (with pager on second parameter)
        echo $obj->generateTable($cssClass, $pager);
      ?>
    </div>
  </body>
</html>

Check this docs for more.

Go to contribute !

License

FOSSA Status