gpt4 book ai didi

PHP 数组只输出第一个值

转载 作者:行者123 更新时间:2023-11-30 23:46:08 25 4
gpt4 key购买 nike

我正在尝试将数据从 MySQL 写入 PHP-Array(以使用 PHP 库 FluidXML 生成 XML 文件)。当我回显数组时,我只得到它的第一个值,但是当我回显一个与数组具有相同数据的变量时,我得到包含所有信息的正确输出。让我更准确地解释一下:

获取数据的查询:

$sql = sprintf("select b.nPosID, b.nAmount, b.sName, ......."); 
$result = mysql_query($sql);

然后我遍历结果:

$msg = "";
$orderArticles = [];
$orderSubArticles = [];

while($data = mysql_fetch_array($result))
{
if($data['sChange'] != null) {
$msg .= ' * ' . $data['sChange'] . ' ' . number_format($data['nAmount'] * $data['nPriceChange'], 2) . "\r\n";
$orderSubArticles[] = ['SubArticle' => [
'ArticleNo' => '0',
'ArticleName' => $data['sChange'],
'Count' => $data['nAmount'],
'Price' => $data['nPriceChange']
],];
}

if ($nPosID != $data['nPosID']) {
$msg .= " \r\n" . $data['nAmount'] . ' x ' . $data['sName'] . ' ' . number_format($data['nAmount'] * $data['nPrice'], 2) . "\r\n";
$orderArticles[] = ['Article' => [
'ArticleNo' => '0',
'ArticleName' => $data['sName'],
'ArticleSize' => '0',
'Count' => $data['nAmount'],
'Price' => $data['nPrice'],
'Tax' => '10',
'SubArticleList' => [
$orderSubArticles
]],];
}
}

让我们假设,从 SQL 查询中我得到以下正确的输出:

Pizza
+ extra cheese
+ extra tonno

当我回显 $msg 变量时,我得到了相同的正确结果。但是当我回显数组时,我只得到第一个值:

Pizza
+ extra cheese

确切地说,使用数组中的值生成的输出:

<ArticleList>
<Article>
<ArticleName>Pizza</ArticleName>
<Count>1</Count>
<Price>12.9</Price>
<SubArticleList>
<SubArticle>
<ArticleName>Extra cheese</ArticleName>
<Count>1</Count>
<Price>3</Price>
</SubArticle>
</SubArticleList>
</Article>
</ArticleList>

所以第二个<SubArticle>缺少(额外的 tonno)。

最佳答案

在不知道您的结果集真实情况的情况下,我怀疑您的假设是否正确,即结果集中的结果/行确实包含两个子文章。这最终意味着所有结果都有两个子文章,但事实并非如此,因为那样它就需要返回类似 sChange1、sChange2 的东西......

即使结果看起来像那样并且包含两篇或多篇子文章,您的代码也只会将其中一篇分配给每个结果的子文章数组。

关于PHP 数组只输出第一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35699734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com