【问题标题】:PHP - Inserting to an array by calling a method that returns both key and valuePHP - 通过调用返回键和值的方法插入数组
【发布时间】:2015-06-12 22:46:41
【问题描述】:

我试图在构建数组时调用方法。我正在构建一个相当大的配置数组,其中包含许多可重用的块。

这是我想要得到的数组:

array(
   "masterKey" => array(
      "myKey" => array(
         "valueField" => "hi"
      ),
      "anotherKey" => array(
         "valueField" => "hi again"
      )
      ....
   )
);

这就是我想要生成它的方式:

array(
   "masterKey" => array(
      self::getValueField("myKey", "hi"),
      self::getValueField("anotherKey", "hi again"),
      ...
   )
);
private static function getValueField($key, $value)
{
   return array($key => 
      "valueField" => $value
   );
}

但这给了我

array(
   "masterKey" => array(
      [0] => array(
         "myKey" => array(
            "valueField" => "hi"
         )
      ),
      [1] => array(
         "anotherKey" => array(
           "valueField => "hi again"
         )
      )
   )
);

【问题讨论】:

  • @MarcosDimitrio 我知道,这只是在开玩笑。

标签: php arrays associative-array


【解决方案1】:

不要将"masterKey" 字段构造为文字,而是合并self::getValueField 返回的数组:

array(
   "masterKey" => array_merge(
       self::getValueField("myKey", "hi"),
       self::getValueField("anotherKey", "hi again"),
       ...
    )
);

【讨论】:

    【解决方案2】:

    只想补充一点,为了使@giaour 的回答起作用,getValueField 函数的代码应该是:

    <?php
    private static function getValueField($key, $value)
    {
        return array(
            $key => array(
                "valueField" => $value
            )
        );
    }
    

    【讨论】:

      猜你喜欢
      • 2012-03-21
      • 2012-07-31
      • 1970-01-01
      • 1970-01-01
      • 2018-04-05
      • 2013-10-17
      • 2023-03-13
      • 1970-01-01
      • 2013-05-12
      相关资源
      最近更新 更多