Bagaimana saya bisa mengganti satu elemen dalam array di php?

$input = array["red", "green", "blue", "yellow"];
array_splice[$input, 2];
// $input is now array["red", "green"]
_

$input = array["red", "green", "blue", "yellow"];
array_splice[$input, 1, -1];
// $input is now array["red", "yellow"]

$input = array["red", "green", "blue", "yellow"];
array_splice[$input, 1, count[$input], "orange"];
// $input is now array["red", "orange"]

$input = array["red", "green", "blue", "yellow"];
array_splice[$input, -1, 1, array["black", "maroon"]];
// $input is now array["red", "green",
//          "blue", "black", "maroon"]

$input = array["red", "green", "blue", "yellow"];
array_splice[$input, 3, 0, "purple"];
// $input is now array["red", "green",
//          "blue", "purple", "yellow"];
?>

Dalam salah satu posting saya baru-baru ini, saya menjelaskan cara menggunakan array_push, array_pop, array_shift dan array_unshift untuk menambah dan menghapus elemen dari awal dan akhir array PHP. Hari ini, saya akan memperkenalkan Anda pada fungsi array_splice, yang memungkinkan Anda memasukkan elemen ke tengah array. Sebenarnya, ini memungkinkan Anda menyisipkan elemen di awal, akhir, atau di antara keduanya, dan bahkan memungkinkan Anda mengganti elemen yang sudah ada di array Anda

Fungsi sebenarnya dirancang untuk menghapus sejumlah elemen tertentu dari array dan secara opsional menggantinya dengan elemen baru. Mari kita lihat sebuah contoh

$arr1 = array['Item1','Item2','Item3','Item4'];
array_splice[$arr1,1,1,array['Item2a','Item2b']];

Setelah menggunakan fungsi array_splice, array baru akan terlihat seperti

Array
[
    [0] => Item1
    [1] => Item2a
    [2] => Item2b
    [3] => Item3
    [4] => Item4
]
_

Sekarang, mari kita lihat mengapa susunannya terlihat seperti itu. array_splice menerima empat parameter. Dua parameter pertama diperlukan; . Mereka adalah sebagai berikut

  1. Larik masukan [wajib] – larik sumber yang ingin Anda manipulasi dengan fungsi
  2. Offset [wajib] – offset numerik tempat Anda ingin memulai penggantian. Jika Anda menggunakan angka positif, offset akan dimulai dari awal larik sumber [misalnya, jika Anda ingin menghapus item kedua dalam larik, Anda akan menggunakan offset 1]. Jika Anda menetapkan offset negatif, offset akan dimulai dari akhir larik dan bekerja mundur [misalnya, jika Anda ingin menghapus item terakhir dalam larik, Anda akan menggunakan offset -1]
  3. Length [opsional] – Jumlah elemen yang ingin Anda hapus dari array. Jika Anda ingin menghapus semua elemen setelah offset, Anda dapat membiarkannya kosong. Namun, jika Anda akan menentukan penggantinya, Anda perlu menyetel panjangnya menjadi sesuatu;
  4. Penggantian [opsional] – Jika Anda ingin memasukkan sesuatu ke dalam array sebagai pengganti item yang Anda hapus, Anda akan menentukannya di sini. Jika Anda hanya ingin menyisipkan satu string, Anda cukup mendeklarasikannya sebagai string. Namun, jika Anda ingin memasukkan banyak elemen ke dalam larik, Anda perlu mendeklarasikan penggantinya sebagai larik

Dalam contoh kami di atas, kami ingin menghapus elemen kedua dari array dan menggantinya dengan dua elemen baru. Oleh karena itu, kami menggunakan perintah array_splice[$arr1,1,1,array['Item2a','Item2b']];. Dalam contoh itu, $arr1 adalah array input kami, kami memiliki offset 1 [sehingga penghapusan akan dimulai pada elemen kedua dalam array], kami menetapkan panjang 1 [jadi hanya satu elemen yang akan dihapus] dan kami menggunakan

Jika Anda hanya ingin memasukkan elemen baru ke dalam array, tanpa menghapus salah satu item yang ada, Anda dapat menentukan panjang 0. Saat Anda menentukan panjang 0, tidak ada yang akan dihapus. Perlu diingat, bahwa "pengganti" akan dimasukkan pada offset yang Anda tentukan, bukan setelahnya. Oleh karena itu, dalam contoh kita di atas, dengan asumsi kita ingin "Item2a" dan "Item2b" disisipkan setelah "Item2", kita perlu mengubah offset menjadi 2, bukan 1

Fungsi array_replace [] adalah fungsi bawaan di PHP dan mengambil daftar array yang dipisahkan oleh koma [,] sebagai parameter dan mengganti semua nilai dari array pertama yang memiliki kunci yang sama di array lain. Penggantian dilakukan sesuai dengan aturan berikut

  • Jika kunci di larik pertama juga ada di larik kedua, maka nilainya di larik pertama diganti dengan nilai kunci itu di larik kedua
  • Jika kunci di larik kedua tidak ada di larik pertama, maka kunci itu dibuat di larik pertama dan nilainya dari larik kedua disalin di larik pertama
  • Jika kunci dalam larik pertama tidak ada di salah satu larik berikutnya, maka nilai kunci tersebut dibiarkan tidak berubah di larik pertama
  • Larik diproses dalam urutan yang diteruskan ke fungsi, oleh karena itu jika kunci dari larik pertama ada di lebih dari satu larik, maka nilainya akan diganti dengan nilai larik di mana ia muncul terakhir kali.

Sintaksis

array array_replace [ $array1, $array2, ...., $arrayn ]

Parameter. Fungsi ini menerima daftar array sebagai parameter. Parameter pertama untuk fungsi tersebut adalah larik yang akan diganti. Parameter lainnya untuk fungsi adalah larik yang nilainya akan disalin ke larik pertama

Nilai pengembalian. Fungsi ini mengembalikan larik yang terbentuk setelah memodifikasi larik pertama dalam parameter

Contoh

Input : $array1 = array["orange", "banana", "apple", "raspberry"]
        $array2 = array[0 => "pineapple", 4 => "cherry"]
        $array3 = array[0 => "grape"]
        array_replace[$array1, $array2, $array3]
Output : Array
        [
            [0] => grape
            [1] => banana
            [2] => apple
            [3] => raspberry
            [4] => cherry
        ]

Input : $array1 = array["aim", "plan", "vision", "clarity"]
        $array2 = array["word1" => "loneliness", "word2" => "happiness"]
        $array3 = array[0 => "solitude"]
        array_replace[$array1, $array2, $array3]
Output : Array
        [
            [0] => solitude
            [1] => plan
            [2] => vision
            [3] => clarity
            [word1] => loneliness
            [word2] => happiness
        ]

Pada contoh pertama kuncinya, 0 ada di kedua array, oleh karena itu nilainya diganti dengan yang terakhir muncul i. e. anggur dan kunci 4 ada di larik kedua oleh karena itu nilainya juga diganti
Pada contoh kedua, kunci 0 ada di larik ketiga, oleh karena itu nilainya diganti di larik pertama. Kata kunci word1 dan word2 tidak ada di larik pertama, oleh karena itu ditambahkan ke larik pertama beserta nilainya

Program di bawah ini mengilustrasikan fungsi array_replace[] di PHP

Program 1




Bài mới nhất

Chủ Đề