在PHP中将数组转换为HTML表的函数的奇怪的单字符输出
我有几次碰到这个问题,只是想知道是否有人知道为什么会发生这种情况 我传递的数组来自WHM/cPanel API,其形式为(var_dump()ed): 我使用以下函数将其转换为HTML表:在PHP中将数组转换为HTML表的函数的奇怪的单字符输出,php,html,arrays,Php,Html,Arrays,我有几次碰到这个问题,只是想知道是否有人知道为什么会发生这种情况 我传递的数组来自WHM/cPanel API,其形式为(var_dump()ed): 我使用以下函数将其转换为HTML表: public function formatEmailAccountsArrayToTable( $email_accounts ) { $returnHTML = ''; $topentag = '<table class="email_accounts_table">
public function formatEmailAccountsArrayToTable( $email_accounts ) {
$returnHTML = '';
$topentag = '<table class="email_accounts_table">';
$theader = '<thead><tr>
<th>Email</th><th>User</th><th>Domain</th><th>Disk Quota</th><th>Disk Used</th>
</tr></thead><tbody>';
$tclosetag = '</tbody></table>';
$returnHTML .= $topentag . $theader;
foreach( $email_accounts as $v ) {
$returnHTML .= '
<tr>
<td>' . $v['email'] . '</td>
<td>' . $v['user'] . '</td>
<td>' . $v['domain'] . '</td>
<td>' . $v['diskquota'] . '</td>
<td>' . $v['diskused'] . '</td>
</tr>';
}
$returnHTML .= $tclosetag;
return $returnHTML;
}
我不明白为什么任何值都会被截断/转换为表中输出的值
有人知道为什么会发生这种情况吗?因为过程应该非常简单,但行为异常?您的
$email\u accounts
数组是一个二维数组,您在foreach
循环中对其进行迭代,此时$v
表示该数组的单个属性
理想情况下,为了使函数正常工作,您需要重新构造数组,快速修复方法是执行以下操作:
$email_accounts = array($email_accounts);
这将给你:
array
0 =>
array
'_diskquota' => string '262144000' (length=9)
'_diskused' => string '31459' (length=5)
'diskquota' => string '250' (length=3)
您的
$email\u accounts
数组是一个二维数组,您在foreach
循环中对其进行迭代,此时$v
表示该数组的单个属性
理想情况下,为了使函数正常工作,您需要重新构造数组,快速修复方法是执行以下操作:
$email_accounts = array($email_accounts);
这将给你:
array
0 =>
array
'_diskquota' => string '262144000' (length=9)
'_diskused' => string '31459' (length=5)
'diskquota' => string '250' (length=3)
您的
$email\u帐户
数组结构如下:
array(
'x1' => 'y',
'x2' => 'y'
)
在代码中工作应该是这样的:
array(
0 => array(
'x1' => 'y',
'x2' => 'y'
),
1 => array(
'x1' => 'y',
'x2' => 'y'
)
)
您的
$email\u帐户
数组结构如下:
array(
'x1' => 'y',
'x2' => 'y'
)
在代码中工作应该是这样的:
array(
0 => array(
'x1' => 'y',
'x2' => 'y'
),
1 => array(
'x1' => 'y',
'x2' => 'y'
)
)
检查您的$v是否真的包含您期望的内容-对我来说,似乎$v是字符串检查您的$v是否真的包含您期望的内容-对我来说,似乎$v是字符串