Страницы

Поиск по вопросам

воскресенье, 26 января 2020 г.

foreach с присвоением “;”

#php #циклы


Добрый день. 
В цикле foreach я добавляю к каждому id ";".
После операции у меня получается результат 1;2;3;4;5;6;.
Как избавится от добавления ";" после последнего элемента?
Т.е., чтобы в итоге получилось 1;2;3;4;5;6
$id_product = "";

foreach($cart as $item){
    $id_product.= $item["id"].";";
}
    


Ответы

Ответ 1



$myarr = array(); foreach ($cart as $item) { $myarr[]=$item['id']; } $id_product = implode(";", $myarr);

Ответ 2



trim($id_product, ';');

Ответ 3



Еще-еще-еще! $id_product = array(); array_map(function($item) use (&$id_product){ $ids[] = $item['id']; }, $cart); $id_product = implode(';', $ids);

Ответ 4



$id_product = ""; foreach($cart as $item){ $id_product.= $item["id"].";"; } $id_product = substr($id_product,0,-1);

Ответ 5



$array = array(); foreach ($cart as $item){ $array[] = $item['id']; } if(count($array) > 0) $new_array = implode(";",$array);

Ответ 6



После цикла проверить - если последний знак ";", то удалить его

Ответ 7



Ну и я поучаствую в этом шоу. Разовью идею @ErrorMan и нагорожу свой огород: $id_product = ''; for ($x = 0; $x < count($cart); $x++) { $id_product .= $cart[$x]['id']; if ($x != count($cart) -1) $id_product .= ';'; } То же, но с foreach(): $id_product = ''; $x = 1; foreach ($cart as $i) { $id_product .= $i['id']; if ($x != count($cart)) $id_product .= ';'; $x++; } Хотя решение с implode() предпочтительнее. См. выше.

Ответ 8



$count = count($cart); $id_product = ""; $i=0 foreach($cart as $item){ $i++; if($i!=$count){ $id_product.= $item["id"].";"; } else{ $id_product.= $item["id"]; } } что-то вроде этого

Комментариев нет:

Отправить комментарий