#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"]; } } что-то вроде этого
Комментариев нет:
Отправить комментарий