【问题标题】:Getting value of explode from php从php中获取explode的价值
【发布时间】:2014-10-02 14:56:39
【问题描述】:

假设我有一个由 ; 分隔的字符串

  $something = "dog;cat;horse;fish";

我知道我可以很容易地分解它并从分解的数组中获取适当的值:

 $explode = explode(";",$something);

$explode[1] 会是猫。

有什么办法可以内联吗?我的意思是这样的:

$favoritePet = explode(";",$something)[1];

$favoritePet 等于猫

显然以上是错误的,但我希望这能说明我试图同时实现、爆炸和获得价值的目标。

【问题讨论】:

  • 虽然这是 PHP 5.4+ 的一个特性,但想想它如何影响代码的可读性。对我来说,在这种情况下,额外的一行代码会增加可读性。

标签: php arrays explode


【解决方案1】:

这称为数组解引用,可以在 PHP 5.4+ 中完成

【讨论】:

    【解决方案2】:

    这里是PHP 5.4 更改日志的链接。查看第三行,上面写着:

    已添加函数数组解引用,例如foo()[0].

    或者,您可以创建一个简单的函数来为您做同样的事情。

    function r($array, $key){
      return (isset($array[$key])) ? $array[$key] : false; 
    }
    

    得到这样的结果:

      $a = explode(...);
      echo r($a, 1)
    

    【讨论】:

      【解决方案3】:

      这是数组解引用,我希望这样做

      $favoritePet = explode(";",$something)[1];
      

      它会在 PHP 5.4+ 中将 'cat' 返回到 $favoritePet 变量

      在早期版本的 PHP 中,您可以这样做:

        echo current(explode(";",$something)); // get [0]
        echo next(explode(";",$something));    // get [1]
      

      或者您可以编写自己的函数以将其放在一行中,如下所示

        function GetValueAt($arr, $key = 0)
        {
           return $arr[$key];
        }
      

      然后像这样调用这个函数

        echo GetValueAt(explode(';', $something));    // get [0]
        echo GetValueAt(explode(';', $something), 1); // get [1]
      

      【讨论】:

        猜你喜欢
        • 2020-12-31
        • 1970-01-01
        • 2011-05-29
        • 2019-07-20
        • 1970-01-01
        • 2015-07-29
        • 2018-12-09
        • 1970-01-01
        • 2015-04-07
        相关资源
        最近更新 更多