foreach($user as $k=>$v)
不會遍歷您的user
元素中的所有子元素。它遍歷所有user
元素,它們是$users
的子元素。爲了說明:
$data = new SimpleXMLElement('<data>
<users id="1">
<user id="user1a"></user>
<user id="user1b"></user>
</users>
<users id="2">
<user id="user2a"></user>
<user id="user2b"></user>
</users>
</data>');
foreach($data->users as $users)
{
echo 'users id: ', $users['id'], "\n";
foreach($users as $user)
{
echo " user id: ", $user['id'], "\n";
}
}
打印
users id: 1
user id: user1a
user id: user1b
users id: 2
user id: user2a
user id: user2b
你可能想要的東西更像
$data = new SimpleXMLElement('<data>
<users>
<user>
<propA>A1</propA>
<propB>B1</propB>
<propC>C1</propC>
</user>
<user>
<propA>A2</propA>
<propB>B2</propB>
<propC>C2</propC>
</user>
</users>
</data>');
$result = array();
foreach($data->users as $users)
{
foreach($users as $user)
{
$arr = array();
foreach($user->children() as $e) {
$arr[$e->getName()] = (string)$e;
}
$result[] = $arr;
}
}
print_r($result);
它打印
Array
(
[0] => Array
(
[propA] => A1
[propB] => B1
[propC] => C1
)
[1] => Array
(
[propA] => A2
[propB] => B2
[propC] => C2
)
)
請清理的問題 - 這是很難看到你在說什麼。 「假設數組就像:只是爲了得到想法:」?另外,將代碼放在自己的路線上,並進行格式化,將大有幫助。 – 2010-05-26 07:25:32