DEV Community

andysaktia
andysaktia

Posted on

Fungsi-Fungsi Pengolahan Array

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];
    }
}
Enter fullscreen mode Exit fullscreen mode

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;
}
Enter fullscreen mode Exit fullscreen mode

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;
}
Enter fullscreen mode Exit fullscreen mode

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);
    };
Enter fullscreen mode Exit fullscreen mode

Penggunaannya hanya dengan memasukan data $array dan data $key yang merupakan current key.

Top comments (0)