使用PHP动态创建数组

时间:2011-01-23 03:43:46

标签: php arrays

嘿伙计们,请帮助PHP初学者。我正在尝试将一个动态创建的变量加载到一个数组中以便稍后重新读取,原因是发送的SOAP消息很乱并且我试图创建一个不太复杂的数组:

$placea = "place a";
$placeb = "place b";

$myarray = array();

echo "<pre>";
print_r($myarray);
echo "</pre>";

我希望能够做到的事情:

Array
(
    [0] => [Place A] => Array
        (
            [0] => [Accommodation] => Array
                (
                    [RoomId] => 001
                    [RoomAvail] => true
                    [Date] => 12.04.2011

                )
            [1] => [Accommodation] => Array
                (
                    [RoomId] => 002
                    [RoomAvail] => true
                    [Date] => 12.04.2011

                )

        )    Array
(
    [1] => [Place B] => Array
        (
            [0] => [Accommodation] => Array
                (
                    [RoomId] => 101
                    [RoomAvail] => true
                    [Date] => 12.04.2011

                )
            [1] => [Accommodation] => Array
                (
                    [RoomId] => 102
                    [RoomAvail] => true
                    [Date] => 12.04.2011

                )

        )


)

我将如何在PHP中写出来?抱歉,如果它的bleek和/或数组结构不正确

3 个答案:

答案 0 :(得分:3)

因此,您只需要重复使用array初始化程序。

如果你想在PHP中用一些值(例如1到4)初始化一个数组,你可以进行如下调用:

$foo = array(1, 2, 3, 4);

如果你想创建一个关联数组,你存储一些键/值对,你可以进行如下调用:

$foo = array('key' => 'value', 'other key' => 'other value');

但是你当然可以嵌套调用,混合和匹配关联和非关联数组的层来实现类似你的例子:例如:

$foo = array( 
    'Place A' => array( 
        // note use of first array on the next line is
        // to generate structure like [0] => 'Accomodation' => ...
        array('Accomodation' => array( 
            'RoomId' => '001', 
            'RoomAvail' => true, 
            'Date' => '12.04.2011')
        )), 
        array('Accomodation' => array( 
            'RoomId' => '002', 
            'RoomAvail' => true, 
            'Date' => '12.04.2011')
        ))
    ),
    'Place B' => array( 
        array('Accomodation' => array( 
            'RoomId' => '101', 
            'RoomAvail' => true, 
            'Date' => '12.04.2011')
        )), 
        array('Accomodation' => array( 
            'RoomId' => '102', 
            'RoomAvail' => true, 
            'Date' => '12.04.2011')
        ))
    )
);

这几乎可以产生你正在寻找的东西,使它完全复制你用'Place A'包裹每个array的东西,并且每个“地方”都会得到它自己的分配一些变量$foo(我认为这实际上并不是你想要的东西,并写了一些可能更直观的东西)。

答案 1 :(得分:0)

如果你想要一个'不那么复杂'的数组,你有两个数组,一个是前置位置,一个是位置b,然后使用array_merger()http://www.php.net/manual/en/function.array-merge.php合并它们。

研究手册中的数组函数控制结构。许多不同的方法可以实现膨胀的数组代码。

答案 2 :(得分:0)

这将动态创建一个数组。

foreach($soapResponse as $key1 => $value1){
    foreach($value as $key2 => $value2){
        // $key1 = Place A or B
        // value1 = array of values
        $arrayResponse[$key1][$key2] =  $value2;
    }
}