举例来说,我加载了一些东西simplexml_load_file()
,但我想输出 是一个数组而不是一个对象。或者说,我有一个动态的值,有时会是一个字符串,其他时间的数组, 和其他时间的一个对象(即我不知道输入是什么,但我想要输出 以输出 永远是一个数组,无论如何)。如何将任何字符串,数字或对象转换为数组?
确保我拥有的任何价值的最佳方式是以数组形式返回给我?
举例来说,我加载了一些东西simplexml_load_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_decode和foreach循环
$result = json_decode(XXX);
foreach ($result as $data) {
echo $data->arr1;
echo $data->arr1->arr2;
...
...
}
啊,但'$数据 - > arr1'不是数组...还有的对象。 – jerdiggity