Dalam mengolah atau memanipulasi array adalah hal yang lumrah dalam suatu pemograman. Penggunaan fungsi-fungsi berikut dapat membantu dalam pengolahan array:
1. Awal dan Akhir Array
Dalam suatu kumpulan data yang berupa array, sangat penting dalam menentukan key
awal atau akhir suatu array, array sederhana kita dapat menggunakan index 0
atau -1
, namun apabilah key
array telah didefinisikan sebagain entitas, kita akan cukup kebingungan untuk mengambil value dari entitas tersebut. Maka dari itu penggungaan function berikut akan cukup membantu:
// fungsi Untuk mencari entitas key array pertama
if (!function_exists('array_key_first')) {
function array_key_first(array $arr) {
foreach($arr as $key => $unused) {
return $key;
}
return NULL;
}
}
// fungsi untuk mencari entitas key array akhir
if (! function_exists("array_key_last")) {
function array_key_last($array) {
if (!is_array($array) || empty($array)) {
return NULL;
}
$k_array = array_keys($array);
$c_array = count($array)-1;
return $k_array[$c_array];
}
}
fungsi diatas array_key_first
dan array_key_last
sebenarnya sudah tersedia untuk php versi terbaru, namun alangkah baiknya jika kita mengetahui alur logis dari fungsi-fungsi tersebut.
2. Membuat Group Array
Terkadang saya ingin membuat grup baru dari array multidimensi yang telah saya buat, seperti grup berdasarkan chapter atau volume suatu data komik. Nah, fungsi berikut sangat membantu saya dalam pembuatan tersebut:
function group_by($key, $data) {
$result = array();
foreach($data as $val) {
if(array_key_exists($key, $val)){
$result[$val[$key]][] = $val;
}else{
$result[""][] = $val;
}
}
return $result;
}
Fungsi diatas membuat array berdasarkan atribut $key
yang diminta, yang merupakan nama key dari array multidimensi.
3. Menemukan key utama
Dalam pemanggilan array key utama array multidimensi sangatlah penting, maka dari itu berikut merupakan fungsi mencari nilai entitas key utama hanya dengan diketahui value dari key turunannya.
function array_search_inner ($array, $attr, $val, $strict = FALSE) {
// Error is input array is not an array
if (!is_array($array)) return FALSE;
// Loop the array
foreach ($array as $key => $inner) {
// Error if inner item is not an array (you may want to remove this line)
if (!is_array($inner)) return FALSE;
// Skip entries where search key is not present
if (!isset($inner[$attr])) continue;
if ($strict) {
// Strict typing
if ($inner[$attr] === $val) return $key;
} else {
// Loose typing
if ($inner[$attr] == $val) return $key;
}
}
// We didn't find it
return NULL;
}
Penggunaannya sangat mudah $array
diisi dengan variabel array yang akan dicari, $attr
dengan atribut key turunan, $val
dengan nilai yang diketahui yang merupakan value dari key turunan.
4. Mencari Next dan Prev Array
Kali ini fungsi ini sangat berguna dalam kasus pagination atau button/link next dan prev suatu halaman atau konten. Tentunya kita dituntut mengetahui key array berikutnya agar dapat membuat link yang menuju kesitu. Tentunya dengan beragam pertimbangan betuk Get
yang kita pakai atau hanya sekedar mendapatkan data url nya.
// fungsi untuk mendapat key array selanjutnya
function get_next($array, $key) {
$currentKey = current($array);
while ($currentKey !== null && $currentKey != $key) {
next($array);
$currentKey = current($array);
}
return next($array);
};
// fungsi untuk mendapat key array sebelumnya
function get_prev($array, $key) {
$currentKey = current($array);
while ($currentKey !== null && $currentKey != $key) {
next($array);
$currentKey = current($array);
}
return prev($array);
};
Penggunaannya hanya dengan memasukan data $array
dan data $key
yang merupakan current key.
Top comments (0)