Skip to content

Instantly share code, notes, and snippets.

@tayfunerbilen
Last active April 15, 2018 09:21
Show Gist options
  • Save tayfunerbilen/19c8794d922dd229aff153c5709f055d to your computer and use it in GitHub Desktop.
Save tayfunerbilen/19c8794d922dd229aff153c5709f055d to your computer and use it in GitHub Desktop.
PHP Array Cut
<?php
$array = array(
'a' => 1,
'ab' => 2,
'ba' => 3,
'ca' => 4,
'ac' => 5,
5 => 6,
6 => 7,
7 => 8,
8 => 9,
9 => [
'name' => 'a',
'mail' => 'a@a.com'
]
);
/*
Bu fonksiyon kullanılırsa sayısal key'ler her yeni dizide resetlenecektir.
Eğer bunun olmasını istemiyorsanız alttaki 2. fonksiyonu kullanın.
*/
function array_cut($arr, $limit)
{
$new_array = [];
for ($i = 0; $i < count($arr); $i++){
if ($i % $limit == 0){
$new_array[] = array_slice($arr, $i, $limit);
}
}
return $new_array;
}
$arr = array_cut($array, 4);
echo '<pre>';
print_r($arr);
/* Çıktı:
Array
(
[0] => Array
(
[a] => 1
[ab] => 2
[ba] => 3
[ca] => 4
)
[1] => Array
(
[ac] => 5
[0] => 6
[1] => 7
[2] => 8
)
[2] => Array
(
[0] => 9
[1] => Array
(
[name] => a
[mail] => a@a.com
)
)
)
*/
/*
Eğer dizinizdeki key'lerin değerini kaybetmesini istemezseniz bu fonksiyonu kullanın.
*/
function array_cut($arr, $limit)
{
$new_array = [];
$i = 0;
$k = 0;
foreach ($arr as $key => $val){
$new_array[$i][$key] = $val;
$k++;
if ($k % $limit == 0){
$i++;
}
}
return $new_array;
}
$arr = array_cut2($array, 4);
echo '<pre>';
print_r($arr);
/* Çıktı:
Array
(
[0] => Array
(
[a] => 1
[ab] => 2
[ba] => 3
[ca] => 4
)
[1] => Array
(
[ac] => 5
[5] => 6
[6] => 7
[7] => 8
)
[2] => Array
(
[8] => 9
[9] => Array
(
[name] => a
[mail] => a@a.com
)
)
)
*/
/*
Ya da bunlarla hiç uğraşmayıp, PHP'de aynı işi gören array_chunk() fonksiyonunu kullanabiliriz.
*/
$arr = array_chunk($array, 4); // 4'e böl indexleri sıfırla
$arr = array_chunk($array, 4, true); // 4'e böl indexler aynı kalsın
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment