2011-01-23 150 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; 
    } 
}