2013-08-22 49 views
0

举例来说,我加载了一些东西simplexml_load_file(),但我想输出 是一个数组而不是一个对象。或者说,我有一个动态的值,有时会是一个字符串,其他时间的数组, 和其他时间的一个对象(即我不知道输入是什么,但我想要输出 以输出 永远是一个数组,无论如何)。如何将任何字符串,数字或对象转换为数组?

确保我拥有的任何价值的最佳方式是以数组形式返回给我?

回答

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

0

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

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

啊,但'$数据 - > arr1'不是数组...还有的对象。 – jerdiggity

相关问题