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

时间:2013-08-22 03:48:43

标签: php arrays object type-conversion

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

或者说,我有一个动态值,有时会是一个字符串,有时候是一个数组, 和其他时间的对象(即我不知道输入将是什么,但我想要输出 永远是一个阵列,无论如何)。

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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