数组合和发布

时间:2014-01-17 05:56:45

标签: php arrays

这是我之前关于阵列发布的帖子的后续问题。我被建议组合我的数组,以便动态生成电子邮件的表格结果。到目前为止,它看起来像这样:

$emp_names = is_array($_POST['emp_name']) ? $_POST['emp_name'] : array($_POST['emp_name']);
$emp_today_results = is_array($_POST['emp_today_result']) ? $_POST['emp_today_result'] : array($_POST['emp_today_result']);
$emp_today_goals = is_array($_POST['emp_today_goal']) ? $_POST['emp_today_goal'] : array($_POST['emp_today_goal']);
$emp_month_results = is_array($_POST['emp_month_result']) ? $_POST['emp_month_result'] : array($_POST['emp_month_result']);
$emp_month_goals = is_array($_POST['emp_month_goal']) ? $_POST['emp_month_goal'] : array($_POST['emp_month_goal']);
$emp_month_trends = is_array($_POST['emp_month_trend']) ? $_POST['emp_month_trend'] : array($_POST['emp_month_trend']);

$emp_results = array_combine($emp_names, $emp_today_results, $emp_today_goals, $emp_month_results, $emp_month_goals, $emp_month_trends);

收集并组合所有数组。那么,我现在不知道如何使用它们。这不起作用(我假设因为括号中没有“as”。任何想法如何使它工作?

foreach ($emp_results) {
        $htmlBody .= "

        <tr>
        <td>{$emp_name}</td>
        <td>{$emp_today_result}</td>
        <td>{$emp_today_goal}</td>
        <td>{$emp_month_result}</td>
        <td>{$emp_month_goal}</td>
        <td>{$emp_month_trend}</td>
        </tr>";

        }

2 个答案:

答案 0 :(得分:1)

这样做..你这里不需要array_combine

$emp_names = is_array($_POST['emp_name']) ? $_POST['emp_name'] : array($_POST['emp_name']);
$emp_today_results = is_array($_POST['emp_today_result']) ? $_POST['emp_today_result'] : array($_POST['emp_today_result']);
$emp_today_goals = is_array($_POST['emp_today_goal']) ? $_POST['emp_today_goal'] : array($_POST['emp_today_goal']);
$emp_month_results = is_array($_POST['emp_month_result']) ? $_POST['emp_month_result'] : array($_POST['emp_month_result']);
$emp_month_goals = is_array($_POST['emp_month_goal']) ? $_POST['emp_month_goal'] : array($_POST['emp_month_goal']);
$emp_month_trends = is_array($_POST['emp_month_trend']) ? $_POST['emp_month_trend'] : array($_POST['emp_month_trend']);

for($i=0;$i<count($emp_names);$i++)
{
$htmlBody .= "

        <tr>
        <td>$emp_name[$i]</td>
        <td>$emp_today_result[$i]</td>
        <td>$emp_today_goal[$i]</td>
        <td>$emp_month_result[$i]</td>
        <td>$emp_month_goal[$i]</td>
        <td>$emp_month_trend[$i]</td>
        </tr>";
}
echo $htmlBody;

答案 1 :(得分:0)

$values = explode('|', 'emp_name|emp_today_result|emp_today_goal|emp_month_result|emp_month_goal|emp_month_trend');
foreach ($values as $value) {
    $$value = (array)$_POST[$value];
}
for ($i = 0; $i < count($emp_name); $i++) {
    $emp_results = array();
    foreach ($values as $value) {
        $emp_results[] = ${$value}[$i];
    }
    $htmlBody .= '<tr><td>' . implode('</td><td>', $emp_results) . '</td></tr>';
}