I am pretty new to PHP and hope someone here can help me with the following.
我是PHP的新手,希望有人可以帮我解决以下问题。
I have a simpleXML object that looks as follows (shortened):
我有一个simpleXML对象,如下所示(缩写):
<ranks>
<history>
<ranking>1</ranking>
<groupName>currentMonth<item>item1</item><groupCount>53</groupCount></groupName>
</history>
<history>
<ranking>2</ranking>
<groupName>currentMonth<item>item2</item><groupCount>20</groupCount></groupName>
</history>
<history>
<ranking>3</ranking>
<groupName>currentMonth<item>item3</item><groupCount>7</groupCount></groupName>
</history>
<history>
<ranking>4</ranking>
<groupName>currentMonth<item>item4</item><groupCount>4</groupCount></groupName>
</history>
<history>
<ranking>5</ranking>
<groupName>currentMonth<item>item5</item><groupCount>2</groupCount></groupName>
</history>
<history>
<ranking>6</ranking>
<groupName>currentMonth<item>item6</item><groupCount>2</groupCount></groupName>
</history>
<history>
<ranking>7</ranking>
<groupName>currentMonth<item>item7</item><groupCount>1</groupCount></groupName>
</history>
</ranks>
How can I convert this into an array using PHP that has the following structure (hard-coded for demoing)?
如何使用具有以下结构的PHP将其转换为数组(硬编码用于演示)?
$arr = array("item1"=>"53","item2"=>"20","item3"=>"7","item4"=>"4","item5"=>"2","item6"=>"2","item7"=>"1");
Many thanks for any help with this, Mike.
非常感谢Mike的任何帮助。
1 个解决方案
#1
1
It can be done by iterating over the history elements like so:
它可以通过遍历历史元素来完成,如下所示:
$obj = simplexml_load_string($xml); // change to simplexml_load_file if needed
$arr = array();
foreach($obj->history as $history){
$arr[(string)$history->groupName->item] = (int)$history->groupName->groupCount;
}
Outputs
输出
Array
(
[item1] => 53
[item2] => 20
[item3] => 7
[item4] => 4
[item5] => 2
[item6] => 2
[item7] => 1
)
#1
1
It can be done by iterating over the history elements like so:
它可以通过遍历历史元素来完成,如下所示:
$obj = simplexml_load_string($xml); // change to simplexml_load_file if needed
$arr = array();
foreach($obj->history as $history){
$arr[(string)$history->groupName->item] = (int)$history->groupName->groupCount;
}
Outputs
输出
Array
(
[item1] => 53
[item2] => 20
[item3] => 7
[item4] => 4
[item5] => 2
[item6] => 2
[item7] => 1
)