在php多维数据库中格式化单个结果以匹配?

在php多维数据库中格式化单个结果以匹配?,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我正在获取一些XML数据并用PHP解析它 大多数结果以多维数组形式出现,但偶尔我会在单个数组中得到结果,结果会破坏我的脚本 我试图将单个结果的格式设置为与多维数组中结果的格式匹配,但我没有任何运气 以下是我得到的: Array ( [name] => Steve Jobs [id] => 3 ) Array ( [0] => Array (

我正在获取一些XML数据并用PHP解析它

大多数结果以多维数组形式出现,但偶尔我会在单个数组中得到结果,结果会破坏我的脚本

我试图将单个结果的格式设置为与多维数组中结果的格式匹配,但我没有任何运气

以下是我得到的:

    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;

        }
我原以为这样就可以了,但它已关闭…

试试这个:

    $array_check = @array_keys($result[0]['name']);

    if (!isset($array_check[0])) {
        $result[] = $array_check;
    } else {
        $result = $array_check;
    }

    var_dump($result);
试试这个:

    $array_check = @array_keys($result[0]['name']);

    if (!isset($array_check[0])) {
        $result[] = $array_check;
    } else {
        $result = $array_check;
    }

    var_dump($result);

如果您的第一个数组被分配给变量$singleArray,并且您的目标结果存储在$results中,请尝试此
array\u 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);

for($i=0;$i如果您的第一个数组被分配给变量$singleArray,并且您的目标结果存储在$results中,请尝试此
array\u 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);

for($i=0;$i把我甩了这个:
array(size=2)'name'=>string'Steve Jobs'id'=>string'1'0=>null array(size=3)0=>array(size=2)'name'=>string'Steve Jobs'id'=>string'6'1=>array(size=2)“name”=>string'billgates'id'=>string'8'2=>null
把我甩了这个:
array(size=2)'name'=>string'Steve Jobs'id'=>string'1'0=>null array(size=3)0=>array(size=2)'name'=>string'Steve Jobs'id'=>string'6'1=>array(size=2)'name'=>string'Bill Gates'id'=>string'8'2=>null
我的第一个数组已经在多维数组中。我正在运行一个循环,检查每个数组是否有单个数组,然后重写。
var_dump($multiarr);
你能发布你的循环吗?
foreach($multi-as$arr){$array\u check=@array\u-keys($arr[0]['name']);如果(!isset($array_check[0]){$arr[]=$array_check;}else{$arr=$array_check;}var_dump($multi);
我的第一个数组已经在多维数组中。我正在运行一个循环,检查每个数组的单个数组,然后重写。
var_dump($multiarr);
你能发布你的循环吗?
foreach($multias$arr){$array\u check=@array\u keys($arr[0]['name']);if(!isset($array\u check[0]){$arr[]=$array\u check;}else{$arr=$array\u check;}}var\u dump($multi);