我已经创建了一个通过多维数组输出数据的函数,据我所知,所有数据都带有条件输出,现在仍然是我要格式化输出数据的问题。
以下是我想要的代码目标...请参阅图片使用纯HTML制作的内容:
现在我尝试通过从转发器字段中提取数据将其转换为PHP。这很好,但我想分组并形成它。
如下:
一旦月份名称和年份被释放,我想将他们的时间数据分成三组,这意味着最多三次包含在一个HTML中,然后是下一个直到出现一个新的月份部分,并且只有前一个元素才有一个分隔符“|”。
以下是代码:
function rp_all_info_termine() {
$termine = rp_get_all_termine();
$output = '';
$i = 0;
$is_same_month = false;
$monthname = '';
foreach ( $termine as $keys => $values ) {
foreach ( $values as $key => $value ) {
$get_date = preg_replace( '/\s+/', '', $value[ 'title' ] );
$get_monthname = rp_get_month_name( $get_date );
$get_year = rp_get_year( $get_date );
$get_time = trim( $value[ 'description' ] );
$get_weekday = rp_get_weekday( $get_date );
if ( rp_check_date( $get_date ) == '-1' || rp_check_date( $get_date ) == '0' ) {
unset( $key );
continue;
}
if ( $get_monthname != $monthname ) {
$monthname = '<h3>' . esc_html( $get_monthname );
$year = ' ' . esc_html( $get_year ) . '</h3>';
} else {
$monthname = null;
$year = null;
}
$output .= $monthname;
$output .= $year;
$output .= esc_html( $get_date );
$output .= esc_html( $get_weekday );
$output .= esc_html( $get_time ).' | ';
$monthname = $get_monthname;
$i++;
}
}
return $output;
}
以下是我的结果:
我的编辑:
感谢你的回答我已经做到了,但现在是分离器唯一未解决的问题......这就是我改变了:
if ( $get_monthname != $monthname ) {
$i = 0;
$monthname = '<h3><strong>' . esc_html( $get_monthname );
$year = ' ' . esc_html( $get_year ) . '</strong></h3>';
} else {
$monthname = null;
$year = null;
}
if ( $i == 3 ) {
$output .= '<br>';
}
使用分离器我试着解决的方法类似于此结果:
if ( $i >= 1 ) {
$output .= ' | ';
}
但我想将分隔符放在三者的最后一个元素中: