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.
dizi eleman sayısını sınırlandırmak
5
●83
- 10-11-2020, 09:01:47Dizinin sayısı belli değil hocam.oktayWEB adlı üyeden alıntı: mesajı görüntüle
- 10-11-2020, 10:31:46Üyeliği durdurulduBelli değilse $dizi_count = count($dizi);buddy adlı üyeden alıntı: mesajı görüntüle
$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
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:54Herhangi 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 ) */