Php 使用SimpleXMLElement从XML问题获取数组
好的,问题就在这里,使用api lyris hq,我将返回这个xml数据集Php 使用SimpleXMLElement从XML问题获取数组,php,arrays,api,xml-parsing,simplexml,Php,Arrays,Api,Xml Parsing,Simplexml,好的,问题就在这里,使用api lyris hq,我将返回这个xml数据集 <DATASET> <TYPE>success</TYPE> <RECORD> <DATA type="name" id="205199">Dev1</DATA> <DATA type="messages">4</DATA> <DATA type="last
<DATASET>
<TYPE>success</TYPE>
<RECORD>
<DATA type="name" id="205199">Dev1</DATA>
<DATA type="messages">4</DATA>
<DATA type="last-sent">Jun. 26, 2012</DATA>
<DATA type="members">1</DATA>
<DATA type="status">active</DATA>
<DATA type="cache-time">2012-06-26T18:21:18+00:00</DATA>
</RECORD>
<RECORD>
<DATA type="name" id="206378">Dev2</DATA>
<DATA type="messages">1</DATA>
<DATA type="last-sent"></DATA>
<DATA type="members">2</DATA>
<DATA type="status">active</DATA>
<DATA type="cache-time">2012-05-31T14:47:12+00:00</DATA>
</RECORD>
<RECORD>
<DATA type="name" id="206379">Dev3</DATA>
<DATA type="messages">1</DATA>
<DATA type="last-sent"></DATA>
<DATA type="members">1</DATA>
<DATA type="status">active</DATA>
<DATA type="cache-time">2012-05-31T14:47:12+00:00</DATA>
</RECORD>
<RECORD>
<DATA type="name" id="206380">Dev4</DATA>
<DATA type="messages">1</DATA>
<DATA type="last-sent"></DATA>
<DATA type="members">1</DATA>
<DATA type="status">active</DATA>
<DATA type="cache-time">2012-05-31T14:47:12+00:00</DATA>
</RECORD>
</DATASET>
使用dev1第一条记录的示例
$response = array(
'205199' => array(
'name' => 'Dev1',
'messages' => '4',
'last-sent' => 'Jun. 26, 2012',
'members' => '1',
'status' => 'active',
'cache-time' => '2012-06-26T18:21:18+00:00'
),
);
我和这里的网络团队的几个成员已经在这件事上痛击了我们一段时间了,而且没有任何进展,所以我希望我能从蜂群思维中得到一些帮助,可以这么说,哈哈
这是一个可怜的例子,我上一次试图用它来得到我的结果,但显然失败了
foreach ($responseobj->RECORD as $value) {
$returnarray[(string)$value->DATA['id']] = array();
foreach ($value->DATA as $k => $v) {
echo '<pre>';
print_r($v);
echo '</pre>';
$returnarray[(string)$v['id']] = array((string)$v['type'] => (string)$v,);
}
}
使用->属性,你知道,它用于读取属性;我尝试过这样做,但是属性可以作为数组键访问,就像我在$returnarray[string$v['id']]=arraystring$v['type']=>string$v,;现在可以吗?很高兴知道。然后当然是$returnarray[string$value->DATA['id']][string$v['type']]]=string$v;在循环中。通过您提供的数组[状态]=>success[205199]=>Array[名称]=>Dev1[]=>Array[消息]=>22[上次发送]=>2011年9月23日[成员]=>41[状态]=>active[缓存时间]=>2012-05-31T14:47:12+00:00[206378]=>Array[name]=>Dev2等等,但它不会循环并将所有类型添加到数组中不,你不会。。。注意字符串$value->DATA['id']。不是$v['id']/
foreach ($responseobj->RECORD as $value) {
$returnarray[(string)$value->DATA['id']] = array();
foreach ($value->DATA as $k => $v) {
echo '<pre>';
print_r($v);
echo '</pre>';
$returnarray[(string)$v['id']] = array((string)$v['type'] => (string)$v,);
}
}
<?php
$x = simplexml_load_file('example.xml');
$returnarray = array();
foreach($x->RECORD as $value){
$returnarray[(string)$value->DATA['id']] = array();
foreach ($value->DATA as $k => $v) {
$returnarray[(string)$value->DATA['id']][(string)$v['type']] = (string)$v;
}
}
var_dump($returnarray);