Php 在表中显示多维数组数据

Php 在表中显示多维数组数据,php,arrays,Php,Arrays,我有一个数组,在使用var_dump时输出: array(3) { ["taxonomy"]=> string(10) "exam_board" ["terms"]=> array(1) { [0]=> string(7) "pearson" } ["field"]=> string(4) "slug" } pearsonarray(3) { ["taxonomy"]=> string(9) "e

我有一个数组,在使用var_dump时输出:

array(3) { 
    ["taxonomy"]=> string(10) "exam_board"
    ["terms"]=> array(1) { 
        [0]=> string(7) "pearson" 
    } 
    ["field"]=> string(4) "slug" 
} 
pearsonarray(3) { 
    ["taxonomy"]=> string(9) "exam_code" 
    ["terms"]=> array(3) { 
        [0]=> string(4) "a123" 
        [1]=> string(4) "b123" 
        [2]=> string(4) "c123" 
    } 
    ["field"]=> string(4) "slug" 
} 
a123array(3) { 
    ["taxonomy"]=> string(10) "exam_level" 
    ["terms"]=> array(1) { 
        [0]=> string(15) "pearson-a-level" 
    } 
    ["field"]=> string(4) "slug" 
}
数组定义如下:

$tax_query = array();

foreach ( get_object_taxonomies( 'exam' ) as $tax ) {
    if ( isset( $_POST[ $tax ] ) ) {
        $tax_query[] = array(
            'taxonomy' => $tax,
            'terms' => wp_unslash( ( array ) $_POST[ $tax ] ),
            'field' => 'slug',          
        );
    }
}

$args['tax_query'] = $tax_query;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args['paged'] = $paged;  
$the_query = new WP_Query( $args );
我要做的是循环遍历数组并将术语输出到表中

这张桌子需要看起来像这样

<tr>
    <td>pearson</td>
    <td>a123</td>
    <td>pearson-a-level</td>
</tr>
<tr>
    <td>pearson</td>
    <td>b123</td>
    <td>pearson-a-level</td>
</tr>
<tr>
    <td>pearson</td>
    <td>c123</td>
    <td>pearson-a-level</td>
</tr>    

我最终使用了
$thew_query
wp_get_post_术语($post->ID,'exam_code',数组(“fields”=>“names”)

if($the\u query->have\u posts()){
while($the\u query->have\u posts()){
$the_query->the_post();
//现在$query->post是WP\u post对象,请使用:
//$query->post->ID$query->post->post\u title等。
$title=$the_query->post->post_title;
$id=$the_query->post->id;
$exam\u date=get\u post\u meta($the\u query->post->ID,'exam\u date',true);
$exam_code=wp_get_post_terms($post->ID,'exam_code',数组(“字段”=>“名称”);
如果($exam_代码){
$exam_code=$exam_code[0];
}否则{
$exam_code=“”;}
$exam\u time=wp\u get\u post\u术语($post->ID,'exam\u time',数组(“字段”=>“名称”);
如果($考试时间){
$exam_time=$exam_time[0];
}否则{
$exam_time=“”;
}
回声';
回显“.$EXAME_date.”;
回显“.$exam_代码”;
回显“.$title.”;
回显“.$考试时间”;
回声';
}
}

当您的数据与预期的输出不匹配时,对于您试图实现的目标,您的问题非常令人困惑。但本质上,您需要嵌套一些
foreach
循环,以便迭代子数组

像这样的

$data = [
    [
        "taxonomy" => "exam_board",
        "terms"    => [
            "pearson",
        ],
        "field"    => "slug",
    ],
    [
        "taxonomy" => "exam_code",
        "terms" => [
            "a123",
            "b123",
            "c123",
        ],
        "field" => "slug",
    ],
    [
        "taxonomy" => "exam_level",
        "terms"    => [
            "pearson-a-level",
        ],
        "field" => "slug",
    ],
];

echo "<table>";
foreach($data as $item) {
    foreach($item['terms'] as $term) {
        echo '<tr>';
        echo '<td>' . $item['taxonomy'] . '</td>';
        echo '<td>' . $term . '</td>';
        echo '</tr>';
    }
}
echo "</table>";
$data=[
[
“分类”=>“考试板”,
“条款”=>[
“皮尔逊”,
],
“字段”=>“段塞”,
],
[
“分类”=>“考试代码”,
“条款”=>[
“a123”,
“b123”,
“c123”,
],
“字段”=>“段塞”,
],
[
“分类”=>“考试级别”,
“条款”=>[
“皮尔逊a级”,
],
“字段”=>“段塞”,
],
];
回声“;
foreach($数据作为$项){
foreach($item['terms']作为$term){
回声';
回显'.$item['taxonomy'].';
回显“.$term.”;
回声';
}
}
回声“;
产出:

<table>
    <tr>
        <td>exam_board</td>
        <td>pearson</td>
    </tr>
    <tr>
        <td>exam_code</td>
        <td>a123</td>
    </tr>
    <tr>
        <td>exam_code</td>
        <td>b123</td>
    </tr>
    <tr>
        <td>exam_code</td>
        <td>c123</td>
    </tr>
    <tr>
        <td>exam_level</td>
        <td>pearson-a-level</td>
    </tr>
</table>

考试委员会
皮尔逊
考试代码
a123
考试代码
b123
考试代码
c123
考试水平
皮尔逊a级

在这里发布一些php代码,其中定义了数组
$data = [
    [
        "taxonomy" => "exam_board",
        "terms"    => [
            "pearson",
        ],
        "field"    => "slug",
    ],
    [
        "taxonomy" => "exam_code",
        "terms" => [
            "a123",
            "b123",
            "c123",
        ],
        "field" => "slug",
    ],
    [
        "taxonomy" => "exam_level",
        "terms"    => [
            "pearson-a-level",
        ],
        "field" => "slug",
    ],
];

echo "<table>";
foreach($data as $item) {
    foreach($item['terms'] as $term) {
        echo '<tr>';
        echo '<td>' . $item['taxonomy'] . '</td>';
        echo '<td>' . $term . '</td>';
        echo '</tr>';
    }
}
echo "</table>";
<table>
    <tr>
        <td>exam_board</td>
        <td>pearson</td>
    </tr>
    <tr>
        <td>exam_code</td>
        <td>a123</td>
    </tr>
    <tr>
        <td>exam_code</td>
        <td>b123</td>
    </tr>
    <tr>
        <td>exam_code</td>
        <td>c123</td>
    </tr>
    <tr>
        <td>exam_level</td>
        <td>pearson-a-level</td>
    </tr>
</table>