• 09-11-2020, 22:26:27
    #1
    bir dizi oluşturuyorum ve dizinin elemanları sürekli yenileniyor değişiyor.

    fakat her yeni elemanın gelmesinde eleman sayısının büyümesini fazlalaşmasını istemiyorum.

    dizinin eleman sayısını kendimiz belirleyip sınırlandırabilir miyiz?

    örneğin eleman sayısı en fazla 5 olsun.

    diziye gelecek yeni değerlerin dahil olması için array_unshift /array_pop kullanmayı düşünüyorum.
  • 10-11-2020, 01:04:51
    #2
    Üyeliği durduruldu
    Eğer dizi sayınız belliyse str_replace ile eskileri yeni indisler ile değiştirebilirsiniz.

    Eğer belli değilse, sürekli değişen bir yapıysa bu mesaja alıntı yapın gereken bir örneği derleyip göndereyim.
  • 10-11-2020, 09:01:47
    #3
    oktayWEB adlı üyeden alıntı: mesajı görüntüle
    Eğer dizi sayınız belliyse str_replace ile eskileri yeni indisler ile değiştirebilirsiniz.

    Eğer belli değilse, sürekli değişen bir yapıysa bu mesaja alıntı yapın gereken bir örneği derleyip göndereyim.
    Dizinin sayısı belli değil hocam.
  • 10-11-2020, 10:31:46
    #4
    Üyeliği durduruldu
    buddy adlı üyeden alıntı: mesajı görüntüle
    Dizinin sayısı belli değil hocam.
    Belli değilse $dizi_count = count($dizi);
    $dizi_count değişkenine dizi sayısını almış olursun, daha sonra str_replace ile esas istediğin işlemi yapabilirsin.
  • 10-11-2020, 15:29:20
    #5
    class Array {
         private $array = [];
    
         private $max = 10;
    
         public function __construct(int $max = 10, $array = [])
         {
              $this->array = $array;
              $this->max = $max;
         }
    
         public function setMax(int $max)
         {
              $this->setMax = $max;
    
              return $this;
         }
    
         public function add($value)
         {
              if (count($this->array) < $this->max) {
                   $this->array[] = $value;
              }
    
              return $this;
         }
        
         public function get()
         {
              return $this->array;
         }
    }
    
    $array = new Array(5);
    $array->add(1)->add(2)->add(3)->add(4)->add(5)->add(6);
    
    var_dump($array->get());
    Bu şekilde kullanabilirsin. Minimum düzeyde yazdım tabi geliştirebilirsin. add methoduna key ekleyebilirsin. Yada limiti aştığında exception verebilirsin, toArray, toJson, get($key), getAll vs vs ihtiyacına göre artık. add methoduna unshift pop vs de ekleyebilirsin.
  • 10-11-2020, 16:49:54
    #6
    Herhangi bir diziden belirli sayıda eleman alıp yeni bir dizi olarak kullanmak için array_slice fonksyonunu kullanabilirsiniz.

    //Elimizde bir dizi olduğunu var sayalım
    $arr = range(1,14);
    // Son 5 elemanı alacaksak
    print_r(array_slice($arr, -5));
    /*
    Array
    (
        [0] => 10
        [1] => 11
        [2] => 12
        [3] => 13
        [4] => 14
    )
    */
    // İlk 5 elemanı alacaksak
    print_r(array_slice($arr,0, 5));
    /*
    
    Array
    (
        [0] => 1
        [1] => 2
        [2] => 3
        [3] => 4
        [4] => 5
    )
    */