Php 在表中显示多维数组数据
我有一个数组,在使用var_dump时输出: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
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>