Php 如何将数组转换为多维数组

Php 如何将数组转换为多维数组,php,mysql,arrays,multidimensional-array,Php,Mysql,Arrays,Multidimensional Array,我有一个数组要转换为多维数组 这是数组 Array ( [0] => Array ( [packageid] => FGF1460676803 [uniqueid] => uid1460676987 [hotelname] => Jet Park Airport [Country] => New Zealand ) [1]

我有一个数组要转换为多维数组

这是数组

Array
(
    [0] => Array
        (
            [packageid] => FGF1460676803
            [uniqueid] => uid1460676987
            [hotelname] => Jet Park Airport
            [Country] => New Zealand
        )

    [1] => Array
        (
            [packageid] => FGF1460678556
            [uniqueid] => uid1460678681
            [hotelname] => Mercure Windsor
            [Country] => New Zealand
        )

    [2] => Array
        (
            [packageid] => FGF1460678556
            [uniqueid] => uid1460678787
            [hotelname] => Jet Park Airport
            [Country] => New Zealand
        )
)
SELECT
    c.packageid,
    `uniqueid`,
    `hotelname`,
    `Country`
FROM
    custinfo c,
    hotelcarttemp h
WHERE
    c.packageid = h.packageid
我已经尝试过这个代码,但它没有显示我想要的。 这个数组是从mysql的两个表中获取的,第一个是carry packageid,第二个是uniqueid,hotelname,country,所以我加入了它,但是我想加入下面的数组,但是我被困在如何使用mysql或者在获取数组之后

这是mysql查询

Array
(
    [0] => Array
        (
            [packageid] => FGF1460676803
            [uniqueid] => uid1460676987
            [hotelname] => Jet Park Airport
            [Country] => New Zealand
        )

    [1] => Array
        (
            [packageid] => FGF1460678556
            [uniqueid] => uid1460678681
            [hotelname] => Mercure Windsor
            [Country] => New Zealand
        )

    [2] => Array
        (
            [packageid] => FGF1460678556
            [uniqueid] => uid1460678787
            [hotelname] => Jet Park Airport
            [Country] => New Zealand
        )
)
SELECT
    c.packageid,
    `uniqueid`,
    `hotelname`,
    `Country`
FROM
    custinfo c,
    hotelcarttemp h
WHERE
    c.packageid = h.packageid
PHP代码

foreach ($json_decode_array1 as $row)
{
   $newArray[$row['packageid']][] = $row;
}

echo '<pre>'; print_r($newArray); echo '</pre>';
试试这个:

$newArr = array();
    foreach($json_decode_array1 as $row) {
        $temp = array();
        $temp['packageid'] = $row['packageid'];
        $temp['hoteldata'] = array(
            'uniqueid' => $row['uniqueid'],
            'hotelname' => $row['hotelname'],
            'Country' => $row['Country'],
        );
        $newArr[] = $temp;
    }
    echo '<pre>';print_r($newArr);
试试这个

$result = [];
array_walk($arr, function($v) use(&$result) {   // $arr is your initial array
    $packageid = array_shift($v);
    if (!isset($result[$packageid])) {
        $result[$packageid] = ["packageid" => $packageid, "hoteldata" => [$v]];
    } else {
        $result[$packageid]["hoteldata"][] = $v;
    }    
});

print_r(array_values($result));
$newArr=array();
foreach($json_decode_array1作为$row){
$temp=array();
$temp['packageid']=$row['packageid'];
$temp['hoteldata']=数组(
'uniqueid'=>$row['uniqueid'],
'hotelname'=>$row['hotelname'],
“国家”=>$row[“国家”],
);
$newArr[]=$temp;
}
回声';印刷费($newArr);

使用
array\u walk
array\u shift
array\u value
功能的解决方案:

输出:


$newArray[$pid]['hoteldata']=$row
这将覆盖数组(),而不是按
$row
@u\u mulder非常感谢您的回答,但它会显示这样的输出@VijayKumar修复了我的答案:在
$newArray[$pid]=array()
@u\u mulder您真的需要在第8行设置'hoteldata'=>array()。在你最终创建密钥时,这是必要的吗?@PetkoKostov这不是必要的,但我想知道我这里有什么。
Array
(
    [0] => Array
        (
            [packageid] => FGF1460676803
            [hoteldata] => Array
                (
                    [0] => Array
                        (
                            [uniqueid] => uid1460676987
                            [hotelname] => Jet Park Airport
                            [Country] => New Zealand
                        )
                )
        )
    [1] => Array
        (
            [packageid] => FGF1460678556
            [hoteldata] => Array
                (
                    [0] => Array
                        (
                            [uniqueid] => uid1460678681
                            [hotelname] => Mercure Windsor
                            [Country] => New Zealand
                        )
                    [1] => Array
                        (
                            [uniqueid] => uid1460678787
                            [hotelname] => Jet Park Airport
                            [Country] => New Zealand
                        )
                )
        )
)