Bagaimana cara melakukan Penghapusan Array dengan Nilai Bukan Kunci di PHP?

Array pada dasarnya adalah elemen penyimpanan untuk pasangan nilai kunci yang termasuk dalam tipe data yang sama. Jika kunci ditentukan secara eksplisit, id mulai dari 0 seperti yang ditetapkan ke nilai oleh kompiler sendiri. Array memungkinkan berbagai macam operasi, seperti akses, modifikasi, dan penghapusan pada elemen yang disimpan. Posisi elemen kemudian disesuaikan.

Pendekatan 1: array_pencarian() dan tidak disetel() metode

array_search() metode:

Nilai pertama-tama dicari dalam array dan kemudian dihapus secara berurutan. Itu array_pencarian() metode ini digunakan untuk mencari array untuk nilai tertentu. Jika berhasil, ia mengembalikan kunci pertama yang sesuai. Itu array_pencarian() metode peka huruf besar/kecil dalam hal mencocokkan nilai yang ditentukan dengan nilai larik yang diulang. Jika ada beberapa kemunculan dengan nilai yang sama, hanya satu yang diambil darinya.

Sintaksis:

array_search($value, $array);

Argumen:

  • $nilai: Nilai dalam array yang harus dicari.
  • $array: Larik tempat nilai dicari.

Nilai kembali: Mengembalikan kunci jika nilai ada dalam array, jika tidak mengembalikan salah.

tidak disetel() metode:

Itu tidak disetel() fungsi dalam PHP digunakan untuk mengatur ulang variabel apa pun. Jika tidak disetel () dipanggil pada fungsi yang ditentukan pengguna, itu menghapus variabel lokal. Ada banyak nilai yang dapat ditentukan sebagai argumen dari fungsi ini. Setidaknya satu variabel wajib dalam metode unset().

Sintaksis:

unset($var);

Nilai kembali: Fungsi unset() tidak mengembalikan nilai apa pun.

kode PHP:

PHP

<?php

#declaring an associative array

$arr = array(

    0 => 'GeeksForGeeks',

    1 => 'Python',

    2 => 'Java',

    3 => 'Physics'

);

#printing original array

echo ("Original Array: n");

var_dump($arr);

#declaring the value to delete

$val = "Physics";

#finding the key on the basis of value

$key = array_search($val, $arr);

if (($key) !== false)

{

    #deleting the key found

    unset($arr[$key]);

}

echo ("<br><br>Modified Array: n");

var_dump($arr);

?>

Keluaran

Original Array: 
array(4) {
  [0]=>
  string(13) "GeeksForGeeks"
  [1]=>
  string(6) "Python"
  [2]=>
  string(4) "Java"
  [3]=>
  string(7) "Physics"
}
Modified Array: 
array(3) {
  [0]=>
  string(13) "GeeksForGeeks"
  [1]=>
  string(6) "Python"
  [2]=>
  string(4) "Java"
}

Pendekatan 2: array_diff() metode

Itu array_diff() fungsi dalam PHP digunakan untuk membandingkan nilai dari dua (atau lebih) array dan mengembalikan perbedaannya. Ini mengembalikan array yang berisi entri dari array1 yang tidak terkandung dalam array2 atau array3, dll.

Sintaksis:

array_diff(arr, array1, array2, ...)

Argumen:

  • arr: Array yang dibandingkan dengan array lainnya.
  • array1, array2 ….: Array untuk dibandingkan dengan array utama.

Nilai kembali: Mengembalikan array yang berisi entri dari arr yang tidak ada di salah satu array terkait lainnya.

Kami mengandalkan pendekatan yang kami ubah nilainya menjadi array menggunakan metode array() di PHP dan kemudian menerapkan apply array_diff() metode atas kedua array ini. Perbedaan dibandingkan dengan metode sebelumnya adalah bahwa semua instance dari nilai yang ditentukan dihapus dari larik utama.

kode PHP:

PHP

<?php

#declaring an associative array

$arr = array(

    0 => 'GeeksForGeeks',

    1 => 'Python',

    2 => 'Java',

    3 => 'Physics',

    4 => 'Python'

);

#printing original array

echo ("Original Array: n");

var_dump($arr);

#declaring the value to delete

$val = array(

    "Python"

);

#finding the key on the basis of value

$arr = array_diff($arr, $val);

 

echo ("<br><br>Modified Array: n");

var_dump($arr);

?>

Keluaran

Original Array: 
array(5) {
  [0]=>
  string(13) "GeeksForGeeks"
  [1]=>
  string(6) "Python"
  [2]=>
  string(4) "Java"
  [3]=>
  string(7) "Physics"
  [4]=>
  string(6) "Python"
}
Modified Array: 
array(3) {
  [0]=>
  string(13) "GeeksForGeeks"
  [2]=>
  string(4) "Java"
  [3]=>
  string(7) "Physics"
}

kode PHP: Kode berikut mengilustrasikan penggunaan pendekatan ini di mana kuncinya bukan ID numerik.

PHP

<?php

#declaring an associative array

$arr = array(

    'key1' => 'GeeksForGeeks',

    'key2' => 'Python',

    'key3' => 'Java',

    'key4' => 'Physics',

    'key5' => 'Python'

);

#printing original array

echo ("Original Array: n");

var_dump($arr);

#declaring the value to delete

$val = array(

    "Java"

);

#finding the key on the basis of value

$arr = array_diff($arr, $val);

 

echo ("<br><br>Modified Array: n");

var_dump($arr);

?>

Keluaran

Original Array: 
array(5) {
  ["key1"]=>
  string(13) "GeeksForGeeks"
  ["key2"]=>
  string(6) "Python"
  ["key3"]=>
  string(4) "Java"
  ["key4"]=>
  string(7) "Physics"
  ["key5"]=>
  string(6) "Python"
}
Modified Array: 
array(4) {
  ["key1"]=>
  string(13) "GeeksForGeeks"
  ["key2"]=>
  string(6) "Python"
  ["key4"]=>
  string(7) "Physics"
  ["key5"]=>
  string(6) "Python"
}