У меня есть это простое, чтобы цикл повторил массив:
for ($i = 0; $i < count($director); $i++) {
echo '<a href="person.php?id='.$director[$i]["id"].'">'.$director[$i]["name"].'</a>';
}
Проблема здесь состоит в том, что, когда больше чем один элемент находится в массиве затем, я повторил все без любого пространства между. Я хочу разделить каждый элемент с запятой кроме последней.
Я не могу использовать implode
таким образом, я ищу другое решение
Это должно сработать. Я думаю, что лучше вызывать count ()
один раз, а не на каждой итерации цикла.
$count = count($director);
for ($i = 0; $i < $count; $i++) {
echo '<a href="person.php?id='.$director[$i]["id"].'">'.$director[$i]["name"].'</a>';
if ($i < ($count - 1)) {
echo ', ';
}
}
Мой предпочтительный метод:
$links = [];
for ($i = 0; $i < count($director); $i++) {
$links[] = '<a href="person.php?id='.$director[$i]["id"].'">' .
$director[$i]["name"] . '</a>';
}
echo implode(', ', $links);
Или
$output = "";
for ($i = 0; $i < count($director); $i++) {
if ($output) {
$output .= ", ";
}
$output .= '<a href="person.php?id='.$director[$i]["id"].'">' .
$director[$i]["name"].'</a>';
}
echo $output;
$number = count($director);
for ($i = 0; $i < $number; $i++) {
echo '<a href="person.php?id='.$director[$i]["id"].'">'.$director[$i]["name"].'</a>';
if($i < $number - 1){
echo ', ';
}
}
Упс, я не видел ответ Тома Хейга, мы пришли практически с тем же.
Как насчет чего-то подобного? Возможно, вы захотите сохранить результат "count($director)" в переменной вне цикла, чтобы не тратить ресурсы на его пересчет при каждом запуске цикла.
for($i=0; $i<count($director);$i++){
echo '<a href="person.php?id='.$director[$i]["id"].'">'.$director[$i]["name"].'</a>';
if($i!=count($director)-1){echo ',';}
}
Ну, foreach
содержит для
: -)
foreach ($director as $key => $person) {
if ($key !== 0) echo ', ';
echo '<a href="person.php?id='.urlencode($person['id']).'">'.$person['name'].'</a>';
}
Если я правильно помню синтаксис PHP, это также может помочь:
$str = "";
for ($i = 0; $i < count($director); $i++) {
$str .= '<a href="person.php?id='.$director[$i]["id"].'">'.$director[$i]["name"].'</a>, ';
}
$str = trim($str, ", ");