【问题标题】:How to best structure hard coded array data in PHP?如何在 PHP 中最好地构造硬编码数组数据?
【发布时间】:2013-04-27 07:06:27
【问题描述】:

我正在开发一个 PHP 库,我想使用数组添加一些硬编码数据。如何确定根据数组键和值构造数据的最佳方式?例如,如果我想去美国,我可以去:

$states = 数组(
    'AL' => '阿拉巴马州',
    'AZ' => '亚利桑那',
    ...);

或者我可以去:

$states = 数组(
    数组('AL','阿拉巴马'),
    数组('AZ','亚利桑那'),
    ...);

我觉得第二种选择可能更好,因为这样我就可以始终如一地以这种方式构建所有数据,而不管有多少“字段”,因为它更类似于数据库行。

编辑: 为了澄清,我正在寻找一个通用的解决方案或一组我可以使用的规则。例如,数据可能是美国以外的数据,并且有 1 个或 8 个字段而不是 2 个。在这些情况下,我可能无法将其用作键。另一个问题是我是否希望所有数据数组都具有相同的结构,还是应该使用最适合特定数据集的数据?

【问题讨论】:

  • 这完全取决于您喜欢处理哪种类型的数组。

标签: php arrays


【解决方案1】:

这会创建键=>值对

$states = array(
'AL' => 'Alabama',
'AZ' => 'Arizona',
...);

这会使用默认键创建所有值

$states = array(
array('AL', 'Alabama'),
array('AZ', 'Arizona'),
...);

使用key=>value 对的第一种方法最适合您的需要。

【讨论】:

    【解决方案2】:

    我会选择第一种方法,因为它不是嵌套的,其次它很容易在没有嵌套循环的情况下循环,在这种情况下你也不需要嵌套数组。

    【讨论】:

      【解决方案3】:

      我会选择第一个。

      $states = array(
          'AL' => 'Alabama',
          'AZ' => 'Arizona',
          ...);
      

      如果您需要更多字段,您可以随时使用嵌套解决方案:

         $states = array(
              'AL' => array( name => 'Alabama', population => 104 ),
              'AZ' => array( name=> 'Arizona', population => 121 ),
              ...);
      

         $states = array(
              'AL' => array( 'Alabama', 104 ),
              'AZ' => array( 'Arizona', 121 ),
              ...);
      

      【讨论】:

        【解决方案4】:

        第一个更好。可以在php中使用foreach命令

        foreach($states as $key => $value){
        
         echo $key . " = " . $value . "<br/>";
        
        }
        

        因此您可以使用 $key 和 $value 进行操作

        而不是:echo $key . " = " . $value . "&lt;br/&gt;";

        foreach($states as $key => $value){
        
         echo $states[$key] . "<br/>";
        

        // 当然也可以简单地回显 $value

        }
        

        这只会给你全名,但基于 $key。

        底线是第一个在 array() 的特殊应用中更强。

        【讨论】:

          猜你喜欢
          • 2011-06-11
          • 1970-01-01
          • 2011-04-08
          • 2016-03-24
          • 1970-01-01
          • 2014-02-20
          • 2023-04-03
          • 2021-05-01
          • 1970-01-01
          相关资源
          最近更新 更多