使用PHP动态创建数组
问题描述:
嘿,伙计们,请帮助一位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和/或阵列结构不正确
答
所以你只需要重复使用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
(我假设这实际上不是你想要的,而是写了一些更直观的东西)。
答
如果你想有一个'不太复杂'的数组,你有两个数组,一个前一个a和一个地方b,然后使用array_merger()http://www.php.net/manual/en/function.array-merge.php合并它们。
研究手册中的数组函数控制结构。用不同的方式来实现臃肿的数组,取代你的代码。
答
这将动态创建一个数组。
foreach($soapResponse as $key1 => $value1){
foreach($value as $key2 => $value2){
// $key1 = Place A or B
// value1 = array of values
$arrayResponse[$key1][$key2] = $value2;
}
}
什么样的数据看起来像你想要在阵列中? – 2011-01-23 03:53:36
做一个var_dump(soap_response);看数据 – sissonb 2011-01-23 03:55:25
会喜欢,但它的超过15000行。会抓住一个片段。但下面给出了一个答案。 :)谢谢 – goingsideways 2011-01-23 04:05:50