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 には 1 つだけを含める必要があります。そしてそれはまさにそれがすることです:
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
)
したがって、2 番目の foreach ループでは、すべての単一要素をそのキーと一緒に取得し、それをノードに攻撃する必要がありますが、実行は 1 回だけです。foreach ループ内で $key と $value をダンプすると、0 と 11 の 2 つの値しか取得できません。これは正しいですが、1 回だけでなく 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"
}
}