【问题标题】:How do I convert any string, number, or object into an array?如何将任何字符串、数字或对象转换为数组?
【发布时间】:2013-08-24 15:31:28
【问题描述】:

比如说,我用simplexml_load_file() 加载了一些东西,但我想要输出 成为一个数组而不是一个对象。

或者,假设我有一个动态值,它有时是一个字符串,有时是一个数组, 有时是一个对象(即我不知道输入是什么,但我想要输出 始终是一个数组,无论如何)。

确保我拥有的任何值作为数组返回给我的最佳方法是什么?

【问题讨论】:

    标签: php arrays object type-conversion


    【解决方案1】:

    这是我见过的最好的方法。

    /**
     * Convert any string, number, object, etc, to an array.
     *
     * @param (mixed) $input
     *  The value to be converted into an array.
     *
     * @return (array)
     *   The original input as an array. If the input value is an empty string or empty
     *   array, the return value will be an empty array.
     */
    function arrayify($input) {
      // Zero means empty, so make sure not to include actual zeros as being "empty"
      // since the desired output might be array(0)
      if (empty($input) && $input !== 0) {
        // Empty in, empty (array) out.
        return array();
      }
      return unserialize(serialize(json_decode(json_encode((array) $input), 1)));
    }
    

    我希望他们能把它(或它的派生词)做成一个核心 PHP 函数,但因为我没有 认为这很可能我认为我至少会在这里分享它。任何反馈或 欢迎改进(假设这不违反规则)。 ;)

    【讨论】:

      【解决方案2】:

      或者你可以使用 json_decode 和 foreach 循环

      $result = json_decode(XXX);
      foreach ($result as $data) {
        echo $data->arr1;
        echo $data->arr1->arr2;
        ...
        ...
      }
      

      【讨论】:

      • 是的,但$data->arr1 不是一个数组...仍然是一个对象。
      猜你喜欢
      • 2022-10-07
      • 1970-01-01
      • 2011-12-27
      • 2023-03-28
      • 2020-07-15
      • 1970-01-01
      • 1970-01-01
      • 2015-10-29
      相关资源
      最近更新 更多