Wenn PHP mehrdimensionale Arrays verwendet, ist die Effizienz dann sehr gering?
PHP中文网
PHP中文网 2017-06-15 09:22:11
0
7
881

Wenn Sie PHP für Projekte verwenden, müssen Sie eine Datenstruktur zum Speichern von Daten verwenden. In PHP können diese jedoch anscheinend nur mithilfe von Arrays gespeichert werden.

Die Konfigurationsdateien von PHPs Laravel und anderen Frameworks verwenden alle mehrdimensionale Arrays, wie zum Beispiel:

// app/config/database.php 文件
return array(
    /*
    |--------------------------------------------------------------------------
    | PDO 类型
    |--------------------------------------------------------------------------
    | 默认情况下 Laravel 的数据库是用 PDO 来操作的,这样能极大化的提高数据库兼容性。
    | 那么默认查询返回的类型是一个对象,也就是如下的默认设置。
    | 如果你需要返回的是一个数组,你可以设置成 'PDO::FETCH_ASSOC'
    */
    'fetch' => PDO::FETCH_CLASS,

    /*
    |--------------------------------------------------------------------------
    | 默认的数据库连接名
    |--------------------------------------------------------------------------
    | 这里所说的名字是和下面的 'connections' 中的名称对应的,而不是指你用的什么数据库
    | 为了你更好的理解,我在这里换了一个名字
    */
    'default' => 'meinv',

    /*
    |--------------------------------------------------------------------------
    | 数据库连接名
    |--------------------------------------------------------------------------
    | 这里就是设置各种数据库的配置的,每个数组里的 'driver' 表明了你要用的数据库类型
    | 同一种数据库类型可以设置多种配置,名字区分开就行,就像下面的 'mysql' 和 'meinv'
    | 其他的么,我觉得不需要解释了吧,就是字面意思,我相信你英文的能力(其实是我英文不好)
    */
    'connections' => array(

        'sqlite' => array(
            'driver'   => 'sqlite',
            'database' => __DIR__.'/../database/production.sqlite',
            'prefix'   => '',
        ),

        'mysql' => array(
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'database'  => 'database',
            'username'  => 'root',
            'password'  => '',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),

        'meinv' => array( //这里就是上面例子里的默认连接数据库名,实际上是 mysql 数据库
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'database'  => 'database',
            'username'  => 'root',
            'password'  => '',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),

        'pgsql' => array(
            'driver'   => 'pgsql',
            'host'     => 'localhost',
            'database' => 'database',
            'username' => 'root',
            'password' => '',
            'charset'  => 'utf8',
            'prefix'   => '',
            'schema'   => 'public',
        ),

        'sqlsrv' => array(
            'driver'   => 'sqlsrv',
            'host'     => 'localhost',
            'database' => 'database',
            'username' => 'root',
            'password' => '',
            'prefix'   => '',
        ),

    ),
);

Ich denke, dass die Effizienz mehrdimensionaler Arrays sehr gering sein wird, aber das Laravel-Framework wird auf diese Weise verwendet, daher weiß ich nicht, ob es machbar ist, mehrdimensionale Arrays in PHP zu verwenden. Ich hoffe, Sie können es beantworten ! ! ! Danke schön! ! !

PHP中文网
PHP中文网

认证高级PHP讲师

Antworte allen(7)
为情所困
  1. PHP中只有数组,你没得选择,laravel是基于PHP的框架,所以他的语法不可能脱离PHP;

  2. 效率这种东西得看你怎么用,多层for循环操作当然效率会低,但是如果多通过索引的话效率还行

学霸

不存在效率低这种问题的。。PHP 的数组实现本来就是个双向链表。。

淡淡烟草味

这个没有效率问题 数据库查询上的效率比较重要

洪涛

执行效率不在于php的运行速度,IO才是瓶颈。这点东西大php处理ms级的

洪涛

Laravel:这锅我不背!

绝大多数PHP框架和程序的配置文件都是这样的,如果效率真的下降,作为PHP领跑者的Laravel框架肯定会使用更好的方式来处理。

另外PHP7比PHP5在数组操作方面效率高了很多。

学霸

使用JSON保存配置的项目是不是很多.
PHP中的关联数组就等价于JS中的JSON对象.
所以可以把PHP的关联数组跟Node.JS的JSON对象进行性能对比.
生成一个包含100万个元素的关联数组(映射/字典):
PHP7的耗时仅为Node7的1/3,就连PHP5都比Node7要快.

可见PHP关联数组的性能是相当好的.

我想大声告诉你

首先, 提及一点, 脱离了使用场景谈效率都是扯淡, 需要开发效率就用 php, 需要运行效率就去用 c/c++.

回答问题: 网站访问量不大的情况下非常可行.

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage