ÇÖZÜLDÜ @BenimWebim; teşekkürler
foreach($elemanlar as $eleman){
if( (strlen($gecici.$eleman)) >= $limit ){
$eklenenler[] = $gecici;
$gecici = $eleman;
}else{
$gecici .= $eleman;
}
}
 $eklenenler[] = $gecici;
Merhaba,
Bir algoritma yazmak istiyorum fakat şu an kafam çok dolu bir türlü yapamadım.
Kısaca bahsediyorum,
Numaralar diye bir dizimiz var dizinin integer değerinde elemanlarımız var , dizinin eleman sayısı değişkendir, 5 te olabilir 10 de olabilir.
Örneğin;
5 elemanlı bir dizimiz var diyelim
Lİmit değişkenimiz 150 olsun
1 eleman sayısı 150 den fazla olamaz
Algoritma
  • 1. ve 2. elemanı topluyoruz, toplamı 150 den küçük ise sıradaki elemanla topluyoruz, büyük olsaydı 1. elemanı eklenenler adında diziye atıp . 2. elemanı sıradak eleman ile toplayacaktık.
  • 1.ve2. eleman 150 den büyük olmadığı için iki elemanı topladık 100+30 = 130 etti, 1.ve .2elemanı 3. eleman ile topluyoruz 205 yaptı, 150 den büyük olduğu için, birinci ve ikinci elemanı eklenenler dizine atıyoruz. 1 ve 2. elemanla işimiz kalmadı
  • 3. eleman ve 4. elemanı topluyoruz 175 yaptı, 150 den büyük olduğu için 3. elemanı eklenenler dizine atıyoruz,3. eleman ile işimiz kalmadı
  • 4. eleman ile 5. elemanı topluyoruz 150 yaptı, 150 den büyük olduğu için 4. elemanı eklenenler dizine atıyoruz , 4. eleman ile işimiz kalmadı
  • 5. eleman son eleman tek başına 150 den büyük olamayacağı için onuda eklenenler dizine atıyoruz
1. elaman ile ikinci elemanın toplamı 150 den az ise iki elemanı topluyoruz, örn(1. ve 2. eleman 130 ), 150 den fazla ise ilk elemanı eklenenler adlı diziye ekliyoruz, değillse sıradaki eleman ile topluyoruz
yani sıradaki 3.elemanımız var, 1ile 2 yi toplamıstık 130 etmişti, 3.elemanıda üzerine ekliyoruz 130+ 75 = 205 karakter yaptı, 150 yi aştı, toplamayacak, 1.ve2. elemanı eklenenler adlı diziye ekliyoruz
daha sonra 3. ve 4. elemanın toplam karakter 175 ,birleştirmiyoruz, 3. satırı eklenenler adında bir diziye atıyoruz
4. satır ve 5. satıra bakıyoruz 100+50 = 150 karakter, 150 den küçük değil birleştirmiyoruz 4. elemanı ekleneler dizisine atıyoruz, 5. elemanda 150 den küçük ve başka eleman yok eklenenler dizisine atıyoruz

NUMARALAR DIZISI
1.eleman- 30
2.eleman- 100
3.eleman- 75
4.eleman- 100
5.eleman - 50

ALGORITMA SONUCU CIKTISI

EKLENENLER DIZI
1. Eleman 100+30 VEYA 130
2. eleman 75
3. eleman 100
4. eleman 50
ilgilenen arkadaşlara şimdiden teşekkürler
EDİT: ANLATIMDA HATA YAPMISIM DUZELTTIM

$elemanlar = array("30","100","75","100","50");
$limit = 150;