Выходной массив в одну ячейку таблицы

Я пытаюсь вывести массив в одну ячейку таблицы. Вот усеченная версия того, что у меня есть сейчас:

$prerequisites = get_post_meta($post->ID, 'opl_prerequisites', true); $output .= '<td>'; if(count($prerequisites) === 1){ foreach( $prerequisites as &$prerequisite ): $prerequisite_object = get_post( $prerequisite ); $output .= $prerequisite_object->post_title; endforeach; } else { foreach( $prerequisites as &$prerequisite ): $prerequisite_object = get_post( $prerequisite ); $output .= $prerequisite_object->post_title.', '; endforeach; } $output .= '</td>'; 

Это возвращает в основном то, что я хочу, хотя я знаю, что есть определенные проблемы с тем, как я его называю. Я просто хочу, чтобы содержимое массива возвращалось в одной ячейке, разделенной запятыми, без запятой, находящейся в самом конце. В настоящее время этот код помещает запятую в конец, если в массиве содержится более 1 элемента. Несколько проблем, которые я пытаюсь выяснить:

Любая помощь будет принята с благодарностью. Заранее спасибо!

Solutions Collecting From Web of "Выходной массив в одну ячейку таблицы"

Кроме того, создайте массив названий, а затем используйте implode …

 $prerequisites = get_post_meta($post->ID, 'opl_prerequisites', TRUE); $titles = array(); foreach( $prerequisites as $prerequisite ){ $titles[] = get_the_title( $prerequisite ); } $output .= '<td>'.implode(",", $titles).'</td>'; 

Передача true поскольку третий параметр get_post_meta() говорит, что возвращает только один элемент. Передайте false или оставьте его пустым, чтобы получить массив совпадающих мета элементов.

Следующий цикл foreach должен работать, а затем удалить дополнительную запятую, если она есть.

 $prerequisites = get_post_meta($post->ID, 'opl_prerequisites', FALSE); $td_output = '<td>'; foreach( $prerequisites as $prerequisite ){ $td_output .= get_the_title( $prerequisite ) . ', '; } if( strlen($td_output) > 4 ){ // remove trailing comma if any prerequisite titles added $td_output = substr( $td_output, 0, -2 ); } $td_output .= '</td>'; $output .= $td_output;