массивы — сделать список формы php строки

У меня есть этот код, который пишут внутри переменной $products строка названия продуктов:

$products = '';
foreach($order->pad_products as $product) $products .= " $product->title";

Когда я печатаю $products внутри тела письма в формате HTML и отправьте письмо с помощью PHP, в этом случае я $msgЯ вижу названия продуктов в одной строке.

$msg = "<html>
<head>
<style type='text/css'></style>
</head>
<body>
<h1>Sent!</h1>
<p>$name thank you</p>
$products
</body>
</html>";

Как я могу составить список этих продуктов?
и я могу удалить один из них?

0

Решение

Чтобы отобразить их в виде списка, вам просто нужно создать список, используя HTML:

<?php
echo "<ul>";
foreach($order->pad_products as $product) {
echo "<li>" . $product->title . "</li>";
}
echo "</ul>";
?>

Альтернатива, применяя к вашему текущему коду

<?php
$products = "";
foreach($order->pad_products as $product) {
$products .= "<li>".$product->title."</li>";
}
$msg = "<html>
<body>
<h1>Sent!</h1>
$products
</body>
</html>";
2

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

ProcessWire (который вы пометили это) позволяет вам сделать это с pop():

<?php
echo "<ul>";
$products = $order->pad_products;
$products->pop();
foreach($products as $product) {
echo "<li>" . $product->title . "</li>";
}
echo "</ul>";
?>

Другим вариантом является подсчет количества предметов и ограничение на один меньше этого. Вы должны быть в состоянии использовать ->count() но я не знаю, что такое pad_products, так что если это не сработает, вы можете просто сделать count($order->pad_products)

<?php
echo "<ul>";
$limit = $order->pad_products->count() - 1;
foreach($order->pad_products("limit=$limit") as $product) {
echo "<li>" . $product->title . "</li>";
}
echo "</ul>";
?>
1

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