Как установить разделитель переменных

У меня есть переменная $cameramodel который содержит термин мета таксономии WordPress:

<?php
function cameramodel() {
$terms = get_the_terms($post->ID, 'camera');
$result = "";
foreach ($terms as $term) {
$term_id = $term->term_id;
$result .= get_term_meta( $term_id, 'model', true );
}
return $result;
}

$cameramodel = cameramodel(); ?>

На переднем конце я бы повторил $cameramodel

<?php echo $cameramodel; ?>

Есть случаи, когда $cameramodel содержит более одного значения, но когда я эхо $cameramodelВсе они отображаются на одной строке без пробелов. У меня вопрос, как сделать разделитель между каждым значением? Я хочу, чтобы каждое значение было в отдельной строке, и я хотел бы иметь возможность разделить их словом «и».

Например, если переменная содержит «один два три», она в настоящее время печатает «onetwothree», но я хочу:

one and
two and
three

Надеюсь, мне все ясно.

Спасибо!

0

Решение

Если вы хотите немного отредактировать функцию, я полагаю, что вы выиграете от использования массива, а затем объединения его в строку с разделителем по вашему выбору, переданному в качестве аргумента:

<?php
function cameramodel($delimiter) {
# Get the terms.
$terms = get_the_terms($post -> ID, "camera");

# Create an array to store the results.
$result = [];

# Iterate over every term.
foreach ($terms as $term) {
# Cache the term's id.
$term_id = $term -> term_id;

# Insert the term meta into the result array.
$result[] = get_term_meta($term_id, "model", true);
}

# Return the elements of the array glued together as a string.
return implode($delimiter, $result);
}

# Call the function using a demiliter of your choice.
$cameramodel = cameramodel(" and<br>");
?>

Конечно, вы можете встроить нужный разделитель в функцию в качестве первого аргумента implode вместо того, чтобы передать это в качестве аргумента.

Вот это пример, использующий ту же логику.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]