有一个foreach循环的问题。问题如下:
foreach($content as $c) {
$root->appendChild($node = $dom->createElement($table));
$node->setAttribute("id", $content['id']);
foreach($c as $key => $value) {
$node->appendChild($dom->createElement($key, $value));
}
}
$ content包含表中的所有数据集。所以$ c应该只包含一个。这正是它的作用:
Array
(
[0] => 11
[id] => 11
[1] => admin
[username] => admin
[2] => $2a$08$tpTWqFtZq1KzyIfD/UYI2u5iyGQw.m0.TGJSWx5gwsb/RaJAmdULK
[password] => $2a$08$tpTWqFtZq1KzyIfD/UYI2u5iyGQw.m0.TGJSWx5gwsb/RaJAmdULK
[3] =>
[group] =>
[4] => 0
[deleted] => 0
)
所以在第二个foreach循环中,它应该将每个元素与其密钥一起并将其攻击到节点,但它只运行一次。如果我在foreach循环中转储$ key和$ value,我只得到2个值,0和11.这是正确的,但它应该运行8次,而不是只运行一次。谁能告诉我我的错误在哪里?
$ content的编辑/内容:
array(2) {
[0]=>
array(10) {
[0]=>
string(2) "11"
["id"]=>
string(2) "11"
[1]=>
string(5) "admin"
["username"]=>
string(5) "admin"
[2]=>
string(60) "$2a$08$tpTWqFtZq1KzyIfD/UYI2u5iyGQw.m0.TGJSWx5gwsb/RaJAmdULK"
["password"]=>
string(60) "$2a$08$tpTWqFtZq1KzyIfD/UYI2u5iyGQw.m0.TGJSWx5gwsb/RaJAmdULK"
[3]=>
string(0) ""
["group"]=>
string(0) ""
[4]=>
string(1) "0"
["deleted"]=>
string(1) "0"
}
[1]=>
array(10) {
[0]=>
string(2) "25"
["id"]=>
string(2) "25"
[1]=>
string(6) "mlange"
["username"]=>
string(6) "mlange"
[2]=>
string(60) "$2a$08$X/fDcVsbrIE3sAHjU44aNOxQPe2Gg2wRDdd/YeRFT54rmdNucbJ5e"
["password"]=>
string(60) "$2a$08$X/fDcVsbrIE3sAHjU44aNOxQPe2Gg2wRDdd/YeRFT54rmdNucbJ5e"
[3]=>
string(0) ""
["group"]=>
string(0) ""
[4]=>
string(1) "0"
["deleted"]=>
string(1) "0"
}
}
答案 0 :(得分:1)
更改
$node->setAttribute("id", $content['id']);
到
$node->setAttribute("id", $c['id']);
根据您的$ content数组,$key
中的$value
和$node->appendChild($dom->createElement($key, $value));
是什么
答案 1 :(得分:1)
试试这个:
foreach($content as $key => $value) {
$root->appendChild($node = $dom->createElement($table));
$node->setAttribute("id", $key['id']);
$node->appendChild($dom->createElement($key, $value));
}
这应该做你想要的。如果我理解正确
答案 2 :(得分:0)
没关系,我只是愚蠢,我发现了问题:第一个索引是“0”。 XML名称不能是数字,因此整个脚本只在第二个foreach循环中的“appendChild”之后退出。我忘了打开错误报告,并认为它不是错误,而是语法错误......好吧,我只是迟钝了。下面是错误:
generate_xml.php:0 Fatal error: Uncaught exception 'DOMException' with message 'Invalid
Character Error' in /srv/www/htdocs/ksoldner/Projekt_Vertragsverwaltung/generate_xml.php
on line 23 DOMException: Invalid Character Error in generate_xml.php on line 23 Call
Stack: 0.0003 640480 1. {main}() /srv/www/htdocs/ksoldner/Projekt_Vertragsverwaltung
/generate_xml.php:0 0.0066 1265680 2. DOMDocument->createElement() generate_xml.php:23
也许这有助于某人。^^