Dizi Kütüphanesi


    × Bunları biliyor muydunuz?
"Şablon sihirbazında (Wizard) (5.5.60) sürümünden beri döngülerin sonunda kullanılan : sembolünün kullanım zorunluluğu kaldırılmıştır."


Dizilerle ilgili işlemlerin gerçekleştirilmesi için oluşturulmuş kütüphanedir. Bazı yöntemlerin kullanımını prosedürel kullanım ile paralellik göstermekte iken bazılar ise kullanım noktasında farklılıklar içermektedir. Bu kütüphanenin oluşturulmasındaki amaç sadece fonksiyonları sınıf haline getirmek değildir. Bu fonksiyonların derlenip daha kolay ve kullanışlı işlevler haline getirilmesidir.

 

 

# Kurulum


ZN dağıtımları için kurulum gerekmez.

↓ composer require znframework/package-datatypes

 

 

# Yöntemler


Arrays::add(array $arr, mixed $element) : array
Arrays::apportion(array $data, int $portionCount = 1, bool $preserveKeys = false) : array
Arrays::casing(array $arr, string $type = 'lower', string $keyval = 'all') : array
Arrays::column(array $arrmixed $columnKeymixed $indexKey = NULL) : array
Arrays::combine(array $keys, array $values) : array
Arrays::countSameValues(array $arr, string $key = NULL) : mixed
Arrays::delete(array $arr, mixed $obj) : array
Arrays::deleteRecurrent(array $arr, string $flags = 'string') : array
Arrays::each(array $arr, callable $callable) : mixed
Arrays::element(array $arr, string $keyval = 'value') : array
Arrays::exclude(array $arr, array $exclude) : array
Arrays::exists(array $arr, $element, bool $strict = false) : bool
Arrays::fillKeysRange(array $arr$value''$min = NULL, $max = NULL) : array
Arrays::flatten(array $arr, bool $preserveKey = true) : array
Arrays::force(array $arr, callable $callback) : array
Arrays::get(array $arr, int $count = 1, bool $preserveKey = false) : array
Arrays::include(array$arr, array $include) : array
Arrays::intersect(array ...$args) : array
Arrays::length(array $data) : int
Arrays::map(array ...$args) : array
Arrays::merge(array ...$args) : array
Arrays::multikey(array $arr, string $keySplit = '|') : array
Arrays::pick(array $arr, string $pick) : array
Arrays::product(array $arr) : float
Arrays::random(array $arr, int $countRequest = 1) : array
Arrays::recursiveMerge(array ...$args) : array
Arrays::remove(array $arr, $keys, mixed $values) : array
Arrays::resection(array $arr, int $start = 0, int $len = NULLmixed $new = NULL) : array
Arrays::search(array $arr, $element, bool $strict = false) : mixed
Arrays::section(array $arr, int $start = 0, int $len = NULL, bool $preserve = false) : array
Arrays::series(int $start, int $end, int $step = 1) : array
Arrays::sort(array $arr, string $flags = 'regular') : array
Arrays::sum(array $arr) : float
Arrays::transform(array $arr) : array
ZN\DataTypes\Objects(array $arr) : object

 

 

# Add 


Diziye eleman eklemek için kullanılır. Arrays::addFirst() ve Arrays::addLast() olmak üzere iki yöntemde oluşur.

Parametreler

array $arr İlgili dizi.
mixed $data Eklenecek yeni değer veya değerler.
return array
AddFirst 

Dizinin başına eleman ekler.

$data = ['example' => 'Example'];

$data = Arrays::addFirst($data, 'newElement');
$data = Arrays::addFirst($data, ['firstElement' => 'First Element']);

output($data);
firstElement => string 'First Element' ( length = 15 ),
0 => string 'newElement' ( length = 12 ),
example => string 'Example' ( length = 9 )
AddLast

Dizinin sonuna eleman eklemek için kullanılır.

$data = ['example' => 'Example'];

$data = Arrays::addLast($data, 'newElement');
$data = Arrays::addLast($data, 
[
    'lastElement'    => 'Last Element', 
    'lastestElement' => 'Lastest Element'
]);

output($data);
example => string 'Example' ( length = 9 ),
0 => string 'newElement' ( length = 12 ),
lastElement => string 'Last Element' ( length = 14 ),
lastestElement => string 'Lastest Element' ( length = 17 )

 

 

# Apportion


Diziyi belirlenen sayıda bölümlere ayırmak için kullanılır.

Parametreler

array $arr İlgili dizi.
int $portionCount = 1 Kaçar adet bölümlere ayrılacağı belirtilir.
bool $preserveKey = false İşlemden sonra dizi anahtarlarının korunup korunmayacağı.
return array

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz'];

output( Arrays::apportion($data, 2) );
0 => array
(
        0 => string 'Foo' ( length = 5 ),
        1 => string 'Bar' ( length = 5 ),
),
1 => array
(
        0 => string 'Baz' ( length = 5 ),
)

 

 

# Casing


Dizi elemanlarında büyük küçük harf dönüşümü yapmak için kullanılır.

Parametreler

array $arr İlgili dizi.
string $type = 'lower' Dönüştürülme türü.
Seçenekler lower, upper, title
string $keyval = 'all' Dönüşümün uygulanma alanı. Yani sadece anahtarları mı, değerleri mi yoksa hepsine mi belirtilir.
Seçenekler all, key, value
return array

Kullanımı

output(Arrays::casing($data, 'upper'));          // Keys, Values Upper
output('-----------------------------------');
output(Arrays::casing($data, 'upper', 'key'));   // Only Keys Upper
output('-----------------------------------');
output(Arrays::casing($data, 'upper', 'value')); // Only Values Upper
FOO => string 'FOO' ( length = 5 ),
BAR => string 'BAR' ( length = 5 ),
BAZ => string 'BAZ' ( length = 5 ),
ZOO => string 'ZOO' ( length = 5 ),

-----------------------------------
FOO => string 'Foo' ( length = 5 ),
BAR => string 'Bar' ( length = 5 ),
BAZ => string 'Baz' ( length = 5 ),
ZOO => string 'Zoo' ( length = 5 ),

-----------------------------------
foo => string 'FOO' ( length = 5 ),
bar => string 'BAR' ( length = 5 ),
baz => string 'BAZ' ( length = 5 ),
zoo => string 'ZOO' ( length = 5 )
LowerKeys

Dizi anahtarlarını küçük harfe dönüştürür.

Parametreler

array $arr İlgili dizi.
return array

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz', 'zoo' => 'Zoo'];

output(Arrays::lowerKeys($data));
foo => string 'Foo' ( length = 5 ),
bar => string 'Bar' ( length = 5 ),
baz => string 'Baz' ( length = 5 ),
zoo => string 'Zoo' ( length = 5 )
TitleKeys

Dizi anahtarlarının sadece baş harflerini büyük harfe dönüştürür.

Parametreler

array $arr İlgili dizi.
return array

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz', 'zoo' => 'Zoo'];

output(Arrays::titleKeys($data));
Foo => string 'Foo' ( length = 5 ),
Bar => string 'Bar' ( length = 5 ),
Baz => string 'Baz' ( length = 5 ),
Zoo => string 'Zoo' ( length = 5 )
UpperKeys

Dizi anahtarlarını büyük harfe dönüştürür.

Parametreler

array $arr İlgili dizi.
return array

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz', 'zoo' => 'Zoo'];

output(Arrays::upperKeys($data));
FOO => string 'Foo' ( length = 5 ),
BAR => string 'Bar' ( length = 5 ),
BAZ => string 'Baz' ( length = 5 ),
ZOO => string 'Zoo' ( length = 5 )
LowerValues

Dizi değerlerini küçük harfe dönüştürür.

Parametreler

array $arr İlgili dizi.
return array

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz', 'zoo' => 'Zoo'];

output(Arrays::lowerValues($data));
foo => string 'foo' ( length = 5 ),
bar => string 'bar' ( length = 5 ),
baz => string 'baz' ( length = 5 ),
zoo => string 'zoo' ( length = 5 )
TitleValues

Dizi değerlerinin sadece baş harflerini büyük harfe dönüştürür.

Parametreler

array $arr İlgili dizi.
return array

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz', 'zoo' => 'Zoo'];

output(Arrays::titleValues($data));
foo => string 'Foo' ( length = 5 ),
bar => string 'Bar' ( length = 5 ),
baz => string 'Baz' ( length = 5 ),
zoo => string 'Zoo' ( length = 5 )
UpperValues

Dizi değerlerini büyük harfe dönüştürür.

Parametreler

array $arr İlgili dizi.
return array

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz', 'zoo' => 'Zoo'];

output(Arrays::upperValues($data));
foo => string 'Foo' ( length = 5 ),
bar => string 'Bar' ( length = 5 ),
baz => string 'Baz' ( length = 5 ),
zoo => string 'Zoo' ( length = 5 )
LowerCase

Dizi anahtar ve değerlerini küçük harfe dönüştürür.

Parametreler

array $arr İlgili dizi.
return array

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar'];

output(Arrays::lowerCase($data));
foo => string 'foo' ( length = 5 ),
bar => string 'bar' ( length = 5 )
TitleCase

Dizi anahtar ve değerlerinin ilk harfini büyük harfe dönüştürür.

Parametreler

array $arr İlgili dizi.
return array

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar'];

output(Arrays::titleCase($data));
Foo => string 'Foo' ( length = 5 ),
Bar => string 'Bar' ( length = 5 )
UpperCase

Dizi anahtar ve değerlerini büyük harfe dönüştürür.

Parametreler

array $arr İlgili dizi.
return array

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar'];

output(Arrays::upperCase($data));
FOO => string 'FOO' ( length = 5 ),
BAR => string 'BAR' ( length = 5 )

 

 

# Column


Anahtar veriye göre dizideki değerleri döndürür.

Parametreler

array $arr İlgili dizi.
mixed $columnKey= 0 Döndürülecek değerlerin sütunu.
mixed $indexKey = NULL Döndürülen dizinin anahtarları olarak kullanılacak kolon anahtarı.
return array

Kullanımı

$records =

[
    ['id' => 13, 'firstName' => 'Foo', 'lastName' => 'FOO'],
    ['id' => 29, 'firstName' => 'Bar', 'lastName' => 'BAR']
];

output( Arrays::column($records, 'firstName') );
0 => string 'Foo' ( length = 6 ),
1 => string 'Bar' ( length = 7 )

[$indexKey = 'key'

output( Arrays::column($records, 'firstName', 'lastName') );
'FOO' => string 'Foo' ( length = 6 ),
'BAR' => string 'Bar' ( length = 7 )

 

 

# Combine


2 farklı dizinin değerlerini anahtar ve değer çifti olacak şekilde birleştirmek için kullanılır.

Parametreler

array $arr İlgili dizi.
array $otherArray = [] Birleştirilecek diğer dizi.
return array

Kullanımı

$data      = ['foo', 'bar'];
$otherData = ['Foo', 'Bar'];

output( Arrays::combine($data, $otherData) );
foo => string 'Foo' ( length = 5 ),
bar => string 'Bar' ( length = 5 )

Tek Parametre Kullanımı [6.19.0][2021-07-12]

Bu güncelleme ile 2. parametrenin boş geçilmesi durumunda 2. parametre 1. parametrenin değerini alacaktır. Böylece anahtar ve değer çifti aynı olması istenen dizi işlemlerinde aynı diziyi tekrar kullanmanıza gerek yoktur.

Arrays::combine(['a', 'b']);
['a' => 'a', 'b' => 'b']

 

 

# CountSameValues


Dizide tekrar eden elemanın sayısını öğrenmek için kullanılır.

Parametreler

array $arr İlgili dizi.
string $key = NULL Hangi elamanın tekrar ettiği
return int | array

Kullanımı

$data = ['foo', 'bar', 'baz', 'foo', 'foo'];

output( Arrays::countSameValues($data) );
['foo' => 3, 'bar' => 1, 'baz' => 1]
[$key]

Key tanımlanırsa sadece o elemanın dizi içerisinde kaç defa geçtiği bilgisi elde edilir.

$data = ['foo', 'bar', 'baz', 'foo', 'foo'];

output( Arrays::countSameValues($data, 'foo') );
3

 

 

# Delete


Diziden eleman silmek için kullanılır. Bu yöntemin silme işlevi diğerlerinden biraz daha farklıdır.

Takma Ad [6.0.1][2021-01-26]

Arrays::deleteElement()

Parametreler

array $arr İlgili dizi.
mixed $obj Silinecek değer ve değerler.
return array

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz', 'zoo' => 'Zoo'];

output(Arrays::delete($data, 'Foo'));
bar => string 'Bar' ( length = 5 ),
baz => string 'Baz' ( length = 5 ),
zoo => string 'Zoo' ( length = 5 ),

Birden fazla değeri aynı anda silebilirsiniz

output(Arrays::delete($data, ['Foo', 'Bar']));
baz => string 'Baz' ( length = 5 ),
zoo => string 'Zoo' ( length = 5 ),

Anahtarı olan bir değeri silmek için anahtarı ile birlikte kullanarak silebilirsiniz.

output(Arrays::delete($data, ['baz' => 'Baz', 'zoo' => 'Zoo']));
foo => string 'Foo' ( length = 5 ),
bar => string 'Bar' ( length = 5 ),
 

 

 

# DeleteRecurrent


Dizide tekrar eden elemanları silmek için kullanılır.

Parametreler

array $arr İlgili dizi.
string $flags = 'string' Davranış biçimi.
Seçenekler string, numeric, regular, localestring
return array

Kullanımı

$data = ['foo', 'bar', 'baz', 'bar', 'bar'];

output( Arrays::deleteRecurrent($data) );
0 => string 'foo' ( length = 5 ),
1 => string 'bar' ( length = 5 ),
2 => string 'baz' ( length = 5 )

 

 

# Each 


Dizi anahtar ve değerlerini döngü ile yakalamak için kullanılır.

Parametreler

array $arr İlgili dizi.
callable $callable Çalıştırılacak işlev.
return mixed

Kullanımı

Arrays::each($data, function($value, $key)
{
    output('{0} - {1}', [$key, $value]);
});
foo - Foo
bar - Bar 

 

 

# Element


Anahtar değer çiftleri içeren bir diziden sadece anahtarları veya değerleri almak için kullanılır.

Takma Ad

Arrays::keyval()

Parametreler

array $arr İlgili dizi.
string $type = 'value' Dizi içerisinde yer alan anahtar/anahtarlar veya değer/değerleri almak için kullanılır.
Seçenekler value, key, values, keys
return mixed

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz'];

output( Arrays::element($data) );
output( Arrays::element($data, 'key') );
output( Arrays::element($data, 'values') );
output( Arrays::element($data, 'keys') );
Foo
foo
0 => string 'Foo' ( length = 5 ),
1 => string 'Bar' ( length = 5 ),
2 => string 'Baz' ( length = 5 ),

0 => string 'foo' ( length = 5 ),
1 => string 'bar' ( length = 5 ),
2 => string 'baz' ( length = 5 )
Value

Dizinin ilk değerini alır.

Parametreler

array $arr İlgili dizi.
return mixed

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz'];

output( Arrays::value($data) );
Foo
Key

Dizinin ilk değerinin anahtarını alır.

Parametreler

array $arr İlgili dizi.
return mixed

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz'];

output( Arrays::key($data) );
foo 
Values

Dizinin değerini alır.

Parametreler

array $arr İlgili dizi.
return array

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz'];

output( Arrays::values($data) );
0 => string 'Foo' ( length = 5 ),
1 => string 'Bar' ( length = 5 ),
2 => string 'Baz' ( length = 5 )
Keys

Dizinin anahtarlarını alır.

Parametreler

array $arr İlgili dizi.
return array

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz'];

output( Arrays::keys($data) );
0 => string 'foo' ( length = 5 ),
1 => string 'bar' ( length = 5 ),
2 => string 'baz' ( length = 5 )

 

 

# Exclude


Dizi içerisinde istenmeyen elemanları yok sayması için kullanılır.

Takma Ad

Arrays::excluding()

Parametreler

array $arr İlgili dizi.
array $exclude Yok sayılacak elemanlar. Yok sayılması istenen elemanın değeri veya anahtarı kullanılabilir.
return array

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz'];

output( Arrays::exclude($data, ['foo', 'Baz']) );
bar => string 'Bar' ( length = 5 )

 

 

# Exists


Dizi içerisinde anahtar veya değer olup olmadığını kontrol eden yöntemler içerir.

Alt Yöntemler

valueExists(array $arr, mixed $value) : bool
valueExistsInsensitive(array $arr, mixed $value) : bool
keyExists(array $arr, mixed $key) : bool
keyExistsInsensitive(array $arr, mixed $key) : bool

Pararmetreler

array $arr Kontrol edilecek dizi.
mixed $data Kontrol edilecek veri.
return bool
ValueExists

Dizi içinde değer aramak için kullanılır. Eğer sonuç varsa true yoksa false döner.

$data = ['foo', 'bar', 'baz'];

output( Arrays::valueExists($data, 'bar') );
1
ValueExistsInsensitive

Dizi içinde harf duyarlılığına bakılmaksızın değer aramak için kullanılır. Eğer sonuç varsa true yoksa false döner.

$data = ['foo', 'bar', 'baz'];

output( Arrays::valueExistsInsensitive($data, 'Bar') );
1
KeyExists

Dizi içinde anahtar aramak için kullanılır. Eğer sonuç varsa true yoksa false döner.

$data = ['foo', 'bar' => 'Bar', 'baz'];

output( Arrays::keyExists($data, 'bar') );
1
KeyExistsInsensitive 

Dizi içinde harf duyarlılığına bakılmaksızın anahtar aramak için kullanılır. Eğer sonuç varsa true yoksa false döner.

$data = ['foo', 'bar' => 'Bar', 'baz'];

output( Arrays::keyExistsInsensitive($data, 'Bar') );
1

 

 

# FillKeysRange [8.10.0][2024-04-12]


Dizi içerisinde anahtar değerler arasında sırasal olarak oluşan boşlukları doldurmak için kullanılır.

Parametreler

array $arr İlgili dizi.
mixed $value Doldurulan anahtarın alacağı değer.
mixed $min = NULL Başlanacak en küçük anahtar değer. Varsayılan dizinin en küçük değere sahip anahtarı.
mixed $max = NULL Bitecek en büyük anahtar değer. Varsayılan dizinin en büyük değere sahip anahtarı.
return array

Kullanımı

$data = [1 => 'A', 5 => 'B'];

output( Arrays::fillKeysRange($data, 'X') );
1 => A
2 => X
3 => X
4 => X
5 => B

Minimum ve Maximum Değerler Kullanmak

Eğer $min ve $max değerleri değiştirilirse o aralığı işleme alır ona göre çıktı üretir

$data = [1 => 'A', 5 => 'B'];

output( Arrays::fillKeysRange($data, 'X', 1, 3) );
1 => A
2 => X
3 => X

Yukarıdaki çıktıya bakıldığında 1 den başlayarak 3'e kadar olan sıra üzerinde işlem yapıp çıktılandığı görülmektedir.

 

 

# Flatten


Çok boyutlu karmaşık bir diziyi tek boyutlu hale getirir. Çok boyutlu yapıda bulunan diziler en üst katmana çıkartılır.

Takma Ad

Arrays::unidimensional()

Parametreler

array $arr İlgili dizi.
bool $preserveKey = true Anahtarlar korunsun mu?.
return array

Kullanımı

$arr = ['foo', ['bar'], ['baz' => 'xoo']];

output( Arrays::flatten($arr) );
0   => bar
baz => xoo

Yukarıdaki örnekte anahtalar korunsun seçeneği değiştirilmediği için anahtarı 0 olan 'bar' değeri 'foo' üzerine yazılmıştır.

[$preserveKey = false]

2. parametrenin false ayarlanması durumunda anahtarlar korunmaz ve id ye göre sıralanır.

$arr = ['foo', ['bar'], ['baz' => 'xoo']];

output( Arrays::flatten($arr, false) );
=> foo
=> bar
2 => xoo

 

 

# Force


Dizi anahtarlarına ve değerlerine geri çağrım uygulamak için oluşturulmuştur.

Parametreler

array $arr İlgili dizi.
mixed $callable Uygulanacak işlev.
return array

Kullanımı

$arrs = ['a' => 'A', 'b' => 'B'];

$arr = Arrays::force($arrs, function($data)
{
    return Strings::addSuffix($data, '+');
});

output($arr);
a+ => string 'A+' ( length = 4 )
b+ => string 'B+' ( length = 4 )
ForceKeys

Dizi anahtarlarına geri çağrım uygulamak için oluşturulmuştur.

Parametreler

array $arr İlgili dizi.
mixed $callable Uygulanacak işlev.
return array

Kullanımı

$arrs = ['a' => 'A', 'b' => 'B'];

$arr = Arrays::forceKeys($arrs, function($data)
{
    return Strings::addSuffix($data, '+');
});

output($arr);
a+ => string 'A' ( length = 3 )
b+ => string 'B' ( length = 3 )
ForceValues

Dizi değerlerine geri çağrım işlevi uygulamak için oluşturulmuştur.

Parametreler

array $arr İlgili dizi.
mixed $callable Uygulanacak işlev.
return array

Kullanımı

$arrs = ['a' => 'A', 'b' => 'B'];

$arr = Arrays::forceValues($arrs, function($data)
{
    return Strings::addSuffix($data, '+');
});

output($arr);
a => string 'A+' ( length = 4 )
b => string 'B+' ( length = 4 )
ForceRecursive [6.22.0][2021-07-29]

Özyinelemeli dizilere geri çağrım işlevi uygulamak için oluşturulmuştur.

Parametreler

array $arr İlgili dizi.
mixed $callable Uygulanacak işlev.
return array

Kullanımı

$arrs = ['a' => 'A', 'b' => 'B', 'c' => ['C', 'D']];

$arr = Arrays::forceRecursive($arrs, function($data)
{
    return Strings::addSuffix($data, '+');
});

output($arr);
[
    'a' => 'A+',
    'b' => 'B+',
    'c' => ['C+', 'D+']
]

 

 

# Get 


Diziden eleman almak için kullanılır. Arrays::getFirst() ve Arrays::getLast() olmak üzere iki yöntemde oluşur.

Parametreler

array $arr İlgili dizi.
int $count = 1 Kaç eleman seçileceği belirtilir.
bool $preserveKey = false Dizi indislerinin korunup korunmayacağı belirtilir.
return mixed
GetFirst

Dizinin başından eleman veya elemanlar almak için kullanılır.

$data = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz'];

output(Arrays::getFirst($data));
output(Arrays::getFirst($data, 2));
Foo
foo => string 'Foo' ( length = 5 ),
bar => string 'Bar' ( length = 5 )
GetLast

Dizinin sonundan eleman almak için kullanılır.

$data = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz'];

output(Arrays::getLast($data));
output(Arrays::getLast($data, 2));
Baz
bar => string 'Bar' ( length = 5 ),
baz => string 'Baz' ( length = 5 )

 

 

# Include 


Dizi içerisinde istenen elemanları alıp diğerlerini yok sayması için kullanılır.

Takma Ad

Arrays::including()

Parametreler

array $arr İlgili dizi.
array $exclude Yok sayılmayacak elemanlar. Yok sayılmaması istenen elemanın değeri veya anahtarı kullanılabilir.
return array

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz'];

output( Arrays::include($data, ['foo', 'Baz']) );
foo => string 'Foo' ( length = 5 ),
baz => string 'Baz' ( length = 5 )

 

 

# intersect


Belirtilen dizilerin ortak elemanlarını bularak yeni bir dizi oluşturur.

Parametreler

array ...$arr İlgili dizi.
return $arr

Kullanımı

$data   = ['foo', 'bar', 'baz'];
$data2  = ['baz', 'zoo', 'coo'];

output( Arrays::intersect($data, $data2) );
[2 => 'baz']
intersectKey 

 Belirtilen dizilerin anahtarlarına göre ortak elemanlarını bularak yeni bir dizi oluşturur.

$data   = ['foo'=> 'foo', 'bar' => 'bar', 'baz' => 'baz'];
$data2  = ['baz' => 'baz', 'zoo' => 'zoo', 'coo' => 'coo'];

output( Arrays::intersect($data, $data2) );
['baz' => 'baz']

 

 

# Length


Dizinin kaç elemanlı olduğu bilgisini verir.

Parametreler

array $arr İlgili dizi.
int int

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz'];

write( Arrays::length($data) );
3

 

 

# Map


Dizi elemanlarına yöntem veya fonksiyon uygulamak için kullanılır. 

Takma Ad

Arrays::implementCallback()

Parametreler

callable $callback Uygulanacak işlev.
array ...$arr İlgili dizi.
return array

Kullanımı

$data  = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz'];

output( Arrays::map('strtoupper', $data) );
foo => string 'FOO' ( length = 5 ),
bar => string 'BAR' ( length = 5 ),
baz => string 'BAZ' ( length = 5 )

 

 

# Merge


Belirtilen dizileri ardarda ekleyerek yeni bir dizi oluşturur.

Parametreler

array ...$arr İlgili dizi.
return array

Kullanımı

$data   = ['foo', 'bar'];
$data2  = ['baz', 'zoo'];

output( Arrays::merge($data, $data2) );
0 => string 'foo' ( length = 5 ),
1 => string 'bar' ( length = 5 ),
2 => string 'baz' ( length = 5 ),
3 => string 'zoo' ( length = 5 )
 

 

 

# Multikey


Aynı değeri tutacak birden fazla farklı dizi anahtarı kullanılacaksa bu yöntem kullanılır.

Parametreler

array $arr İlgili dizi.
string $keySplit = '|' Anahtar ayracı.
return array

Kullanımı

$data = ['foo|zoo|bar' => 'Foo'];

output( Arrays::multikey($data) );
foo => string 'Foo' ( length = 5 ),
zoo => string 'Foo' ( length = 5 ),
bar => string 'Foo' ( length = 5 )

 

 

# Pick


Bir dizi içerisinde yer alan dizilere ait benzer anahtara sahip dizilerin değerlerini alır.

Parametreler

array $arr İlgili dizi.
string $pick Hangi anahtara sahip değerlerin alınacağı.
return array

Kullanımı

$arr = 
[
    ['name' => 'ZN'],
    ['name' => 'Framework']
];

output( Arrays::pick($arr, 'name') );
=> string 'ZN' ( length = 4 )
=> string 'Framework' ( length = 11 )

 

 

# Product


Dizideki değerlerin çarpımını hesaplar.

Parametreler

array $arr İlgili dizi.
return float

Kullanımı

$data = [10, 3, 5];

output( Arrays::product($data) );
150

 

 

# Random 


Diziden rastgele belli sayıda eleman döndürür.

Parametreler

array $arr İlgili dizi.
int $countRequest = 1 Dönmesi istenen eleman sayısı.
return mixed

Kullanımı

$data = [10, 3, 5];

output( Arrays::random($data) );
3

 

 

# RecursiveMerge


İki veya daha fazla sayıda diziyi ardarda ekleyerek yeni bir dizi oluşturur.

Parametreler

array ...$arr İlgili dizi.
return array

Kullanımı

$data   = ['foo', 'bar' => ['Bar', 'BAR']];
$data2  = ['baz', 'zoo'];

output( Arrays::recursiveMerge($data, $data2) );
0 => string 'foo' ( length = 5 ),
bar => array
(
        0 => string 'Bar' ( length = 5 ),
        1 => string 'BAR' ( length = 5 ),
),
1 => string 'baz' ( length = 5 ),
2 => string 'zoo' ( length = 5 )

 

 

# Remove 


Diziden anahtar veya değer silmek için kullanılır

Parametreler

array $arr İlgili dizi.
mixed $keys = [] Hangi anahtar veye anahtarlara ait değerlerin silineceği.
mixed $values = [] Hangi değer veya değerlerin silineceği.
return array

Kullanımı

output(Arrays::remove(['foo''bar''doo' => 'zoo'], 'doo'));
['foo''bar']

[$keys]

Anahtar göre silmek işlemi uygular.

output(Arrays::remove(['foo''bar''doo' => 'zoo'], [], ['zoo']));
['foo''bar']

[$values]

Değere göre silme işlemi uygular.

output(Arrays::remove(['foo''bar''doo' => 'zoo'], ['doo'], ['foo']));
[1 => 'bar']
RemoveKey

Dizi anahtarına göre eleman silmek için kullanılır.

Parametreler

array $arr İlgili dizi.
mixed $keys Hangi anahtara ait verinin silineceği.
return array

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz'];

output(Arrays::removeKey($data, 'bar'));
output('-----------------------------------');
output(Arrays::removeKey($data, ['foo', 'baz']));
foo => string 'Foo' ( length = 5 ),
baz => string 'Baz' ( length = 5 ),

-----------------------------------
bar => string 'Bar' ( length = 5 )
RemoveValue

Dizi değerine göre eleman silmek için kullanılır.

Parametreler

array $arr İlgili dizi.
mixed $keys Hangi değerlerin silineceği.
return array

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz'];

output(Arrays::removeValue($data, 'Bar'));
output('-----------------------------------');
output(Arrays::removeValue($data, ['Foo', 'Baz']));
foo => string 'Foo' ( length = 5 ),
baz => string 'Baz' ( length = 5 ),

-----------------------------------
bar => string 'Bar' ( length = 5 )
RemoveFirst

Dizinin başından eleman silmek için kullanılır.

Parametreler

array $arr İlgili dizi.
int $count = 1 Kaç eleman silineceği.
return array

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz', 'zoo' => 'Zoo'];

output(Arrays::removeFirst($data, 1));
output('-----------------------------------');
output(Arrays::removeFirst($data, 2));
bar => string 'Bar' ( length = 5 ),
baz => string 'Baz' ( length = 5 ),
zoo => string 'Zoo' ( length = 5 ),

-----------------------------------
baz => string 'Baz' ( length = 5 ),
zoo => string 'Zoo' ( length = 5 )
RemoveLast

Dizinin sonundan eleman silmek için kullanılır.

Parametreler

array $arr İlgili dizi.
int $count = 1 Kaç eleman silineceği.
return array

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz', 'zoo' => 'Zoo'];

output(Arrays::removeLast($data, 1));
output('-----------------------------------');
output(Arrays::removeLast($data, 2));
foo => string 'Foo' ( length = 5 ),
bar => string 'Bar' ( length = 5 ),
baz => string 'Baz' ( length = 5 ),

-----------------------------------
foo => string 'Foo' ( length = 5 ),
bar => string 'Bar' ( length = 5 )

 

 

# Resection


Dizinin belli bir kesitini değiştirmek için kullanılır.

Parametreler

array $arr İlgili dizi.
int $start = 0 Başlangıç indisi.
int $length = NULL Kaç karakter alınacağı.
bool $newElement = NULL Yeni eklenecek kesit.
return array

Kullanımı

$data = ['foo', 'bar', 'baz', 'zoo', 'coo'];

output( Arrays::resection($data, 2, 3, ['BAR', 'ZOO']) );
0 => string 'foo' ( length = 5 ),
1 => string 'bar' ( length = 5 ),
2 => string 'BAR' ( length = 5 ),
3 => string 'ZOO' ( length = 5 )

 

 

# Search


Dizi içinde arama yapmak için kullanılır. Arama sonucunda eleman bulunursa o elemanın indis değeri döner.

Parametreler

array $arr İlgili dizi.
mixed $element Aranacak değer.
bool $strict = false Aranılan nesnenin türüne bak.
return mixed

Kullanımı

$data = ['foo', 'bar', 'baz'];

output( Arrays::search($data, 'baz') );
output( Arrays::search($data, 'bar') );
2
1
SearchBetween [6.1.0][2019-08-17]

Bir dizi içerisinde yer alan başlangıç ve bitiş olarak belirtilen elemanlar arasındaki dizi elemanlarını yakalamak için kullanılır. Bu işlem için birden çok alt yöntemden yararlanılır. Gerek değerden değere, gerekse de anahtardan değere şeklinde bir dizi alt yöntem bulunmaktadır.

Parametreler

array $arr İlgili dizi.
mixed $start Hangi elemandan başlanacağı.
mixed $end Hangi elamanda biteceği.
return array

Değerden Değere

Bu kullanımda 2 değer arasında yer alan elemanlar yakalanır.

$arr = ['a', 'b', 'c', 'd', 'e'];

output( Arrays::searchBetween($arr, 'b', 'e') );
=> c
=> d

Değerler Dahil

$arr = ['a', 'b', 'c', 'd', 'e'];

output( Arrays::searchBetweenBoth($arr, 'b', 'e') );
=> b
=> c
2 => d
3 => e

Anahtardan Anahtara

 Bu kullanımda 2 anahtar arasında yer alan elemanlar yakalanır.

$arr = ['a1' => 'a', 'b', 'c', 'd', 'e'];

output( Arrays::searchKeyBetween($arr, 'a1', 2) );
=> b
=> c

Değerler Dahil

$arr = ['a1' => 'a', 'b', 'c', 'd', 'e'];

output( Arrays::searchKeyBetweenBoth($arr, 'a1', 2) );
'a1' => 'a'
0 => b
1 => b
2 => c

Anahtardan Değere

 Bu kullanımda anahtar ile değer yer alan elemanlar yakalanır.

$arr = ['a1' => 'a', 'b', 'c', 'd', 'e'];

output( Arrays::searchKeyToValueBetween($arr, 'a1', 'd') );
=> b
=> c

Değerler Dahil

$arr = ['a1' => 'a', 'b', 'c', 'd', 'e'];

output( Arrays::searchKeyToValueBetweenBoth($arr, 'a1', 2) );
'a1' => 'a'
0 => b
1 => c
2 => d

Değerden Anahtara

 Bu kullanımda değer ile anahtar yer alan elemanlar yakalanır.

$arr = ['a1' => 'a', 'b', 'c', 'd', 'e'];

output( Arrays::searchValueToKeyBetween($arr, 'a', 2) );
=> b
=> c

Değerler Dahil

$arr = ['a1' => 'a', 'b', 'c', 'd', 'e'];

output( Arrays::searchValueToKeyBetweenBoth($arr, 'a', 2) );
'a1' => 'a'
0 => b
1 => c
2 => d

 

 

# Section


Diziden kesit almak için kullanılır.

Parametreler

array $arr İlgili dizi.
int $start = 0 Başlangıç indisi.
int $length = NULL Kaç karakter alınacağı.
bool $preserveKeys = NULL Anahtar değerlerinin korunup korunmayacağı.
return array

Kullanımı

$data = ['foo', 'bar', 'baz', 'zoo', 'coo'];

output( Arrays::section($data, 2, 2) );
0 => string 'baz' ( length = 5 ),
1 => string 'zoo' ( length = 5 )

 

 

# Series


Belli bir aralıkta dizi oluşturmak için kullanılır.

Parametreler

int $start Başlangıç indisi.
int $end Bitiş indisi.
int $step = 1 Artış miktarı.
return array

Kullanımı

output( Arrays::series(0, 100, 10) );
0 => integer 0 ( length = 1 ),
1 => integer 10 ( length = 2 ),
2 => integer 20 ( length = 2 ),
3 => integer 30 ( length = 2 ),
4 => integer 40 ( length = 2 ),
5 => integer 50 ( length = 2 ),
6 => integer 60 ( length = 2 ),
7 => integer 70 ( length = 2 ),
8 => integer 80 ( length = 2 ),
9 => integer 90 ( length = 2 ),
10 => integer 100 ( length = 3 )

 

 

# Sort 


Dizi elemanlarını a-z şeklinde sıralar.

Parametreler

array $arr İlgili dizi.
string $flag = 'regular' Sıralama yönü.
regular Elamanlar normal olarak sıralanır.
numeric Elemanlar sayısal olarak sıralanır
string Elemanlar dizgesel olarak sıralanır
localestring Yerele göre dizgesel sıralama yapılır. 
return array

Varyasyonlar

reverse(array $arr, string $flag = 'regular') : array
ascending(array $arr, string $flag = 'regular') : array
descendingKey(array $arr, string $flag = 'regular') : array
ascendingKey(array $arr, string $flag = 'regular') : array
natural(array $arr) : array
naturalInsensitive(array $arr) : array
shuffle(array $arr) : array

Kullanımlar

Aşağıda bu yöntemin kullanımına ve varyasyonlarına yer verilmiştir.

[$flag = 'regular']

Bu kullanımda dizi elemanlarını a-z şeklinde sıralar.

output(Arrays::sort([1, 2, 3, 'foo''bar''baz', 11, 12, 13]));
[1, 2, 3, 11, 12, 13, 'bar', 'baz', 'foo']

[$flag = 'numeric']

Bu kullanımda dizi elemanları 0-9 şeklinde sıralanır.

output(Arrays::sort([1, 2, 3, 'foo''bar''baz', 11, 12, 13], 'numeric'));
[1, 2, 3, 11, 12, 13, 'bar', 'baz', 'foo']

[$flag = 'string']

Bu kullanımda dizi elemanları sayılarda dahil string olarak a-z şeklinde sıralanır.

output(Arrays::sort([1, 2, 3, 'foo''bar''baz', 11, 12, 13], 'string'));
[1, 11, 12, 13, 2, 3, 'bar''baz''foo']

[$flag = 'localestring']

Bu kullanımda yerel olarak ayarlanmış dilin alfabesine göre sıralama yapar.

output(Arrays::sort(['a''b''c''ç''d'], 'localestring'));
['a''b''c''d''ç']

Yereli ayarladıktan sonra;

i18n_loc_set_default('tr_TR');

output(Arrays::sort(['a''b''c''ç''d'], 'localestring'));
['a''b''c', 'ç', 'd']
Reverse

Dizi elemanlarını z-a şeklinde sıralar.

output(Arrays::reverse([1, 2, 3, 'foo''bar''baz', 11, 12, 13]));
['foo', 'baz', 'bar', 13, 12, 11, 3, 2, 1]
Descending 

Dizi elemanlarını değerine göre anahtarları korunacak şekilde z-a şeklinde sıralamak için kullanılır.

output(Arrays::descending(['foo''bar''baz', 1, 2, 3, 11, 12, 13]));
['foo''baz''bar', 13, 12, 11, 3, 2, 1] 
Ascending 

Dizi elemanlarını değerine göre anahtarları korunacak şekilde a-z şeklinde sıralamak için kullanılır.

output(Arrays::ascending(['foo''bar''baz', 1, 2, 3, 11, 12, 13]));
[1, 2, 3, 11, 12, 13, 'bar', 'baz', 'foo']
DescendingKey

Dizi elemanlarını anahtarına göre anahtarları korunacak şekilde z-a şeklinde sıralamak için kullanılır.

output(Arrays::descendingKey([1 => 'one', 2 => 'two''three' => 'three', 10 => 'ten']));
['ten''two''one''three']
AscendingKey

Dizi elemanlarını anahtarına göre anahtarları korunacak şekilde a-z şeklinde sıralamak için kullanılır.

output(Arrays::ascendingKey([1 => 'one', 2 => 'two''three' => 'three', 10 => 'ten']));
['three''one''two''ten']
Natural 

Dizi elemanlarını anahtarları korunacak şekilde harf duyarlılığı dikkate alınarak doğal sıralar.

output(Arrays::natural(['a''A''B''C''c''b']));
['A''B''C''a''b''c']
NaturalInsensitive 

Dizi elemanlarını anahtarları korunacak şekilde harf duyarlılığına dikkat etmeksizin sıralar.

output(Arrays::naturalInsensitive(['a''A''B''C''c''b']));
['a''A''B''b''C''c']
Shuffle

Dizi elemanlarını rasgele dizmek için kullanılır.

output(Arrays::shuffle([1 => 'one', 2 => 'two''three' => 'three', 10 => 'ten']));

 

 

# Sum


Dizideki değerlerin toplamını hesaplar.

Parametreler

array $arr İlgili dizi.
return float

Kullanımı

$data = [10, 3, 5];

output( Arrays::sum($data) );
18

 

 

# Transform 


Dizinin anahtarları ile değerlerini yer değiştirmek için kullanılır.

Takma Ad

Arrays::flip()

Parametreler

array $arr İlgili dizi.
return array

Kullanımı

$data = ['foo' => 'Foo', 'bar' => 'Bar', 'baz' => 'Baz'];

output( Arrays::transform($data) );
Foo => string 'foo' ( length = 5 ),
Bar => string 'bar' ( length = 5 ),
Baz => string 'baz' ( length = 5 )

 

 

# Objects


Tek veya çok boyutlu bir diziyi objeye çevirir.

Takma Ad [6.4.0]

Objects 

Parametreler

array $arr İlgili dizi.
return object

Kullanımı

$data = new ZN\DataTypes\Objects(['a' => 'a', 'b' => ['c' => 'c'] ]);

echo $data->b->c;
c
Takma İsim ile Kullanım [6.4.0][2021-03-04]

Bu güncelleme ile bu sınıf gibi de kullanılabilir.

$data = new Objects(['a' => 'a', 'b' => ['c' => 'c'] ]);

echo $data->b->c;
c