2011-01-23 151 views
2

嘿,伙计们,请帮助一位PHP初学者。我试图把动态创建variabled的加载到一个数组后重新阅读,原因是发送SOAP消息是一个烂摊子,我尝试创建一个不太复杂的阵列:使用PHP动态创建数组

$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和/或阵列结构不正确

+0

什么样的数据看起来像你想要在阵列中? – 2011-01-23 03:53:36

+0

做一个var_dump(soap_response);看数据 – sissonb 2011-01-23 03:55:25

+0

会喜欢,但它的超过15000行。会抓住一个片段。但下面给出了一个答案。 :)谢谢 – goingsideways 2011-01-23 04:05:50

回答

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(我假设这实际上不是你想要的,而是写了一些更直观的东西)。

0

如果你想有一个'不太复杂'的数组,你有两个数组,一个前一个a和一个地方b,然后使用array_merger()http://www.php.net/manual/en/function.array-merge.php合并它们。

研究手册中的数组函数控制结构。用不同的方式来实现臃肿的数组,取代你的代码。

0

这将动态创建一个数组。

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