PHP以列表模式而不是其他单元格显示值

PHP以列表模式而不是其他单元格显示值,php,html,Php,Html,我非常接近预期的输出,但是我被卡住了,需要一些关于以下问题的指导: 我需要将值分组到一个类别中,因此需要显示在一个单元格中。目前,正在创建一个新列。例如,在objective->Lead Generation下,我只希望创建两个列,一个列的值-Male(便宜6.47%),Male(便宜15.91%)以列表模式显示,另一个列的值应该是5-54(便宜6.47%),35-44(便宜15.91%),再次以列表模式显示。目前,for循环正在为每个值创建一个特定列。附件是预期输出。我还使用了explode函

我非常接近预期的输出,但是我被卡住了,需要一些关于以下问题的指导:

我需要将值分组到一个类别中,因此需要显示在一个单元格中。目前,正在创建一个新列。例如,在objective->Lead Generation下,我只希望创建两个列,一个列的值-
Male(便宜6.47%),Male(便宜15.91%)
以列表模式显示,另一个列的值应该是
5-54(便宜6.47%),35-44(便宜15.91%)
,再次以列表模式显示。目前,for循环正在为每个值创建一个特定列。附件是预期输出。我还使用了
explode
函数来创建数组,但不确定如何创建列表值,因为它可能会搞乱HTML的

生成的PHP数组如下所示:

array(2) { 

[0]=> array(3) 

{ ["Objective"]=> string(11) "Conversions" 

["Top Performing Targeting Group"]=> array(2) { [0]=> string(48) "Female (27.74% cheaper )^25-34 (27.74% cheaper )" [1]=> string(48) "Female (22.52% cheaper )^18-24 (22.52% cheaper )" } 

["Top Performing Placement"]=> array(1) { [0]=> string(52) "Mobile Feed (13.53% cheaper)^iPhone (13.53% cheaper)" } }

[1]=> array(3) 

{ ["Objective"]=> string(10) "Page Likes" 
["Top Performing Targeting Group"]=> array(0) { } 
["Top Performing Placement"]=> array(2) { [0]=> string(50) "Mobile Feed (1.42% cheaper)^iPhone (1.42% cheaper)" [1]=> string(51) "Mobile Feed (1.71% cheaper)^Android (1.71% cheaper)" } } }
PHP函数:

  function generateTable2($associative_array){
    echo '<table width="620" class="optimization_table" border="1"  cellspacing="0" cellpadding="0"><thead><tr><th>';
    echo implode('</th><th>', array_keys(current($associative_array)));
    echo '</th></tr></thead><tbody>';
    foreach ($associative_array as $row=>$value){
        echo "<tr>";

        if(is_array($value)) {
            foreach($value as $value2) {
                if(is_array($value2)) {
                    echo "<td><table border='1'  cellspacing='0' cellpadding='0'><tr>";
                    foreach($value2 as $value3) {
                        $values = explode("^", $value3);
                        $value3 = $values[0];
                        $value4 = $values[1];
                        echo "<td>$value3</td>\n";
                        echo "<td>$value4</td>\n";
                    }
                    echo "</tr></table></td>\n";
                }
                else {

                    echo "<td>$value2</td>\n";
                }

            }
        }
        else {
            echo "<td>$value</td>\n";    
        }

        echo "</tr>";

    }
    echo '</tbody></table>';
    }
函数generateTable2($associative_数组){
回声';
回波内爆(“”,数组_键(当前($associative_数组));
回声';
foreach($row=>$value的关联数组){
回声“;
if(是_数组($value)){
foreach(价值为$value2){
if(是_数组($value2)){
回声“;
foreach($value2作为$value3){
$values=分解(“^”,$value3);
$value3=$values[0];
$value4=$values[1];
回显“$value3\n”;
回显“$value4\n”;
}
回音“\n”;
}
否则{
回显“$value2\n”;
}
}
}
否则{
回显“$value\n”;
}
回声“;
}
回声';
}
电流输出

预期输出:例如,彩色单元格有多个值,我想在一个单元格中显示它们,而不是每次显示不同的列

看来您要做的是替换

echo "<td>$value3</td>\n";
echo "<td>$value4</td>\n";
echo“$value3\n”;
回显“$value4\n”;

echo“$value3
$value4\n”;
您的问题似乎缺少预期的输出。刚刚添加。谢谢你指出,有人能帮忙吗
echo "<td>$value3<br>$value4</td>\n";