tridcatij/asciitables

此软件包最新版本(dev-master)没有可用的许可证信息。

此软件包将多维数组转换为ASCII表格。

dev-master 2017-08-30 12:47 UTC

This package is not auto-updated.

Last update: 2024-09-21 15:10:15 UTC


README

此软件包将多维数组转换为ASCII表格

基于此仓库 https://github.com/pgooch/PHP-Ascii-Tables

此类可以将多维数组转换为ASCII表格,反之亦然。

安装

您可以通过composer使用以下命令安装此软件包

composer require tridcatij/asciitables:dev-master --prefer-source

将服务提供者添加到您的config/app.php文件中的providers

// ...
'providers' => [
    /*
     * Package Service Providers...
     */

    Tridcatij\Asciitables\AsciitableServiceProvider::class,
],
// ...

和外观

// ...
'aliases' => [
    /*
     * Class Aliases...
     */

    'Asciitable' => Tridcatij\Asciitables\AsciitableFacade::class,
],
// ...

用法

Asciitable外观添加到您的控制器中。然后,您可以调用以下三个函数之一

  • make_table($array,[$title],[$return])将使用传递的多维$array创建表格。此外,您可以指定一个可选的$title,它将位于表格上方的行中居中。变量$return提供3个选项;True将返回数组作为数组,False将直接输出数组,而字符串将尝试将数组保存到具有给定名称/位置的文本文件中,并在完成后返回true/false。如果为false,错误消息将记录到$error类变量。
  • break_table($table)接受一个表格或包含来自make_table()输出的文本文件的文件名,并将返回一个与您提供给make_table()以创建它的类似的多维数组。
  • scrape_table($table,$key,[$value])将接受一个表格或指向包含表格的文件的链接,就像break_table()一样,但只返回请求的键/值对。如果您不包括值,它将使用键作为值,并以数字数组的形式返回它。请注意,如果您同时使用键和值,则多个键将覆盖彼此,并且返回的数组将只包含表中的最后一个。

示例

use Asciitable;

$data = [
    ['id' => 1, 'name' => 'Tom', 'status' => 'active'],
    ['id' => 2, 'name' => 'Nick', 'status' => 'disabled'],
    ['id' => 3, 'name' => 'Peter', 'status' => 'active'],
];

$table = Asciitable::make_table($data, 'Users', true);

echo "<pre>$table</pre>";

print_r(Asciitable::scrape_table($table,'name','status'));

输出

      	Users
+----+-------+----------+
| id | name  | status   |
+----+-------+----------+
| 1  | Tom   | active   |
| 2  | Nick  | disabled |
| 3  | Peter | active   |
+----+-------+----------+

Array ( [Tom] => active [Nick] => disabled [Peter] => active )