Php 如何将任何字符串、数字或对象转换为数组?

Php 如何将任何字符串、数字或对象转换为数组?,php,arrays,object,type-conversion,Php,Arrays,Object,Type Conversion,比如说,我用simplexml\u load\u file()加载了一些东西,但我想要输出 是数组而不是对象 或者,假设我有一个动态值,有时是字符串,有时是数组, 其他时候是一个对象(即我不知道输入是什么,但我想要输出) 始终是一个数组,无论发生什么) 确保我所有的值作为数组返回给我的最佳方法是什么?这是我见过的最好的方法 /** * Convert any string, number, object, etc, to an array. * * @param (mixed) $inpu

比如说,我用
simplexml\u load\u file()加载了一些东西,但我想要输出
是数组而不是对象

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


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

这是我见过的最好的方法

/**
 * 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函数,但因为我没有 我想这很有可能,我想我至少应该在这里分享一下。任何反馈或
欢迎改进(假设不违反规则)。;)

或者您可以使用json_解码和foreach循环

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

是的,但是
$data->arr1
不是数组。。。还是个目标。