【问题标题】:get value from array using string php使用字符串php从数组中获取值
【发布时间】:2021-05-01 14:28:42
【问题描述】:

我有以下数组:

array('data' => array('one' => 'first', 'two' => 'second'));

如何使用字符串获取键 'one' 的值:

echo __('data.one');

function __($key) {
    $parts = explode('.', $key);
    $array = array('data' => array('one' => 'first', 'two' => 'second'));
    return ???;
}

谢谢你!

【问题讨论】:

    标签: php arrays key


    【解决方案1】:

    添加您自己的错误处理,以防密钥路径不在您的数组中,但类似于:

    $array = array('data' => array('one' => 'first', 'two' => 'second'));
    
    $key = 'data.one';
    
    function find($key, $array) {
        $parts = explode('.', $key);
        foreach ($parts as $part) {
            $array = $array[$part];
        }
        return $array;
    }
    
    $result = find($key, $array);
    var_dump($result);
    

    【讨论】:

      【解决方案2】:

      这应该适合你:

      return $array["data"]["one"];
      

      更多信息和学习一点见:http://php.net/manual/en/language.types.array.php
      还有:PHP - Accessing Multidimensional Array Values

      编辑:

      这应该适合你:

      <?php
      
          $str = "data.one";
          $keys = explode(".", $str);
          $array = array('data' => array('one' => 'first', 'two' => 'second'));
          $access = $array;
      
      
          foreach($keys as $v)
              $access = $access[$v];
      
          echo $access;
      
      ?>
      

      【讨论】:

      • :) 我只需要字符串'data.one'
      • @o_flyer 更新了我的答案! (顺便说一句:您可以接受如何帮助您最大并解决您的问题的答案!(meta.stackexchange.com/q/5234))
      猜你喜欢
      • 1970-01-01
      • 2012-08-27
      • 1970-01-01
      • 2011-09-28
      • 1970-01-01
      • 1970-01-01
      • 2018-08-16
      • 2011-09-08
      相关资源
      最近更新 更多