Dapatkan nilai array dengan kunci php

Dalam tutorial PHP ini, saya menyediakan 5 fungsi untuk mendapatkan nilai array dengan kunci. Kami memiliki array asosiatif dan array yang diindeks dari beberapa kunci. Selanjutnya, kita ingin mendapatkan larik yang memiliki kunci yang cocok dari larik yang diindeks dan nilai yang sesuai dari larik asosiatif

Sebaliknya, kita mungkin ingin menampilkan array dengan kunci dan nilai tertentu yang dikecualikan dari array asosiatif. Tiga cuplikan kode pertama adalah cara untuk mendapatkan array kunci yang cocok. Sedangkan dua yang terakhir menghapus kunci/nilai yang diberikan dan mengembalikan sisanya. Selain itu, kami menggunakan larik berikut untuk memahami semua cuplikan yang diberikan di sini

Dapatkan nilai array dengan kunci php

Array untuk fungsi dan contoh

0

1

2

3

4

 

$warna = array('white' => 'ffffff', 'black' => '000000', 'red' => 'ff0000', 'green'=> '00ff00', 'blue' => '0000ff');

    

$rgb = array('green', 'blue', 'red', 'rainbow');

$bnw = array('black' => '0,0,0', 'white' => '255,255,255');

Berikut adalah tutorial yang lebih baik tentang Array di PHP di blog Fellow Tuts

  • Ubah kunci array tanpa mengubah urutan
  • Temukan objek berdasarkan nilai dalam array objek
  • Menghapus elemen dengan nilainya dari array
  •  

1. Foreach Loop untuk Mendapatkan Nilai Larik dengan Kumpulan Kunci

PHP foreach loop untuk mendapatkan nilai array

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

 

fungsi colors_using_loop($clrs, $keys){

    $arry = array();

    foreach($kunci as $k){

        //if(array_key_exists($k, $clrs)){    

        jika(isset($clrs[$k])){

            $ari[$k] = $clrs[$k];

        }

    }

    kembali $arry;

}

 

$arr = colors_using_loop($colors, $rgb);

print_r($arr);

 

/*

Himpunan

(

[hijau] => 00ff00

[biru] => 0000ff

[merah] => ff0000

)

*/

 

$val = nilai_array($arr);

print_r($val);

 

/*

Himpunan

(

[0] => 00ff00

[1] => 0000ff

[2] => ff0000

)

*/

Ini adalah metode tradisional yang digunakan sebagian besar developer. Meskipun ini memberikan hasil yang diinginkan, ini bukanlah metode yang disukai. Karena kita dapat membuat kode yang lebih baik, mari kita lihat fungsi alternatif untuk mendapatkan array

Namun, kami telah menggunakan fungsi isset() alih-alih array_key_exists() untuk manfaat kinerja PHP. Anda bebas menggunakan salah satunya untuk memeriksa apakah kunci ada dalam larik

2. Susunan Kunci yang Cocok Menggunakan  array_intersect_key()

array_intersect_key()

0

1

2

3

4

5

6

7

8

9

10

 

$arr = array_intersect_key($colors, array_flip($rgb));

 

/*

Himpunan

(

[merah] => ff0000

[hijau] => 00ff00

[biru] => 0000ff

)

*/

array_intersect_key() bersamaan dengan array_flip() secara drastis mengurangi kode yang diperlukan. Fungsi array_flip() membalik kunci dan nilai. Jadi kunci berubah menjadi nilai dan nilai menjadi kunci. di sini, ia mengubah array terindeks menjadi larik asosiatif

Selanjutnya, array_intersect_key() mengembalikan larik yang berisi semua entri dari larik pertama yang memiliki kunci yang diberikan dalam larik kedua. Selain itu, ingatlah bahwa fungsi ini mempertahankan urutan kunci dari parameter pertama yang berbeda dari penerapan sebelumnya

Sekali lagi, jika Anda ingin menghapus fungsi array_flip(), teruskan argumen kedua sebagai array asosiatif, seperti yang ditunjukkan di bawah ini

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

 

$arr = array_intersect_key($colors, $bnw);

 

/*

Himpunan

(

[putih] => ffffff

[hitam] => 000000

)

*/

 

$val = nilai_array($arr);

 

/*

Himpunan

(

[0] => ffffff

[1] => 000000

)

*/

3. Dapatkan Nilai Array dengan Kunci dengan array_map()

Dapatkan array menggunakan kunci -array_map()

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

 

fungsi colors_using_array_map($clrs, $keys){

    kembalikan array_map(fungsi($x) use ($clrs) { return $clrs[$x]; }, $keys);

}

 

$arr = colors_using_array_map($colors, $rgb);

 

/*

Himpunan

(

[0] => 00ff00

[1] => 0000ff

[2] => ff0000

)

*/

Gunakan fungsi ini untuk mendapatkan nilai larik secara langsung dengan kumpulan kunci yang cocok. Perhatikan juga bahwa penerapan ini tidak memerlukan beberapa fungsi larik PHP untuk mendapatkan hasilnya. Selain itu, ini mengembalikan array yang diindeks/numerik sehingga tidak perlu memanggil fungsi array_values()

Namun, perlu diingat bahwa larik kunci tidak boleh berisi kunci apa pun yang tidak ada dalam larik asosiatif. Jika tidak, Anda akan menghadapi pemberitahuan "Indeks tidak terdefinisi" oleh PHP

4. Dapatkan Subset Array Tidak Termasuk Kunci Tertentu

Hingga saat ini, kami telah memperoleh array yang berisi kunci yang diberikan dan cocok. Sebagai gantinya, kita mungkin memerlukan larik yang tidak menyertakan kunci yang diberikan. Inilah metode pertama untuk melakukannya. Jalan panjangnya adalah, lewati larik kunci dan batalkan entri itu dari larik asosiatif

Mendapatkan array tidak termasuk kunci tertentu

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

 

fungsi array_exclude_keys($clrs, $keys){

    foreach($kunci as $k){

        tidak disetel($clrs[$k]);

    }

    pengembalian $clrs;

}

 

$arr = array_exclude_keys($colors, $rgb);

 

/*

Himpunan

(

[putih] => ffffff

[hitam] => 000000

)

*/

5. Dapatkan Nilai Array dengan Kunci Dikecualikan

Metode terakhir hanyalah sedikit perubahan pada contoh kedua dari “array_intersect_key()” di sini. Sebagai ganti array_intersect_key(), gunakan array_diff_key() untuk memfilter elemen dengan nama kunci yang akan dikecualikan. Jadi fungsi kita akan

Kecualikan elemen dengan kunci yang diberikan dari Array

0

1

2

3

4

5

6

7

8

 

$arr = array_diff_key($colors, array_flip($rgb));

 

/*

Himpunan

(

[putih] => ffffff

[hitam] => 000000

)*/

Jadi ini adalah cara yang dapat memfilter array asosiatif berdasarkan kunci tertentu. Anda tidak hanya bisa mendapatkan elemen yang cocok tetapi juga sebaliknya. Juga, Anda dapat menemukan daftar ekstensif fungsi persimpangan dan perbedaan array dalam dokumentasi PHP resmi

Apakah Anda tahu cara lain untuk mendapatkan nilai array dengan set kunci yang cocok atau dikecualikan? . Beri tahu kami di formulir komentar. Juga, tulis juga jika Anda ingin memperbaiki masalah yang terkait dengan array di PHP