我正在抓取一些XML数据并用PHP解析它。
大多数结果都来自多维数组,但偶尔我会在一个数组中得到一个结果,它会破坏我的脚本。
我正在尝试格式化单个结果以匹配multidiminsonal数组中的结果格式,但我没有运气。
这是我得到的:
Array
(
[name] => Steve Jobs
[id] => 3
)
Array
(
[0] => Array
(
[name] => Steve Jobs
[id] => 6
)
[1] => Array
(
[name] => Bill Gates
[id] => 8
)
)
我正在尝试格式化单个结果以匹配多维格式然后展平...
Array
(
[0] => Array
(
[name] => Steve Jobs
[id] => 3
)
[1] => Array
(
[name] => Steve Jobs
[id] => 6
)
[2] => Array
(
[name] => Bill Gates
[id] => 8
)
)
我试过这个:
$array_check = @array_keys($result[0]['name']);
if ($array_check[0] == "0") {
$result;
} elseif ($array_check[0] == "name") {
$ReWrite = array ([0] =>
array (['name']=>
array ($result[0]['name'])
));
$result = $ReWrite;
}
我认为会这样做,但它已经关闭......
答案 0 :(得分:0)
试试这个:
$array_check = @array_keys($result[0]['name']);
if (!isset($array_check[0])) {
$result[] = $array_check;
} else {
$result = $array_check;
}
var_dump($result);
答案 1 :(得分:0)
如果您的第一个数组已分配给变量$ singleArray而您的目标结果存储在$ results中,请尝试此array_push($results, $singleArray);
与reset()
一起使用它返回数组的第一个元素:
if(!is_array(reset($result))){
array_push($results, $result);
}
这将测试数组是否包含数组作为元素,如果它不将整个数组推送到聚合数组。
编辑:试试这个循环:
for($i = 0; $i <= count($multi); $i++){
$arr = $multi[$i];
if(!is_array($arr)){
$multi[$i] = array($arr);
}
} var_dump($multi);