Menggunakan array multidimensi di PHP. Array dalam contoh Php mengisi array multidimensi




Pelajaran ini akan mencakup kemungkinan bekerja dengan array di PHP, mendeklarasikan array, jenis array: array multidimensi dan asosiatif

  1. Array dengan indeks numerik
  2. $buah-buahan="apel"; $buah-buahan="pir"; $buah-buahan="jeruk"; $buah-buahan="aprikot";

    Opsi inisialisasi array ini praktis tidak digunakan saat ini. Opsi berikut untuk bekerja dengan array digunakan:

  3. Array Asosiatif
  4. Opsi untuk membuat array ini menggunakan objek array:

    $buah = array(1 => "apel", 2 => "pir", 3 => "jeruk", 4 => "aprikot"); // Sejak PHP 5.4 $buah = array[ 1 => "apel", 2 => "pir", 3 => "jeruk", 4 => "aprikot" ];

    Mengakses Elemen Array

    1 2 3 4 5 6 7 8 $buah-buahan [ 0 ] = "apel" ; $buah-buahan [ 1 ] = "pir" ; $buah-buahan [ 2 ] = "jeruk" ; $buah-buahan [ 3 ] = "aprikot" ; gema "Elemen pertama dari array adalah ". $buah[0]. "
    " ; gema "Elemen kedua dari array adalah ". $buah[1]. "
    " ; gema "Elemen ketiga dari array adalah ". $buah[2]. "
    " ;

    $buah-buahan="apel"; $buah-buahan="pir"; $buah-buahan="jeruk"; $buah-buahan="aprikot"; echo "Elemen pertama dari array adalah ". $buah-buahan."
    "; echo "Elemen kedua dari array adalah ".$fruits ."
    "; echo "Elemen ketiga dari array adalah ".$fruits ."
    ";

    Hasil dari pelaksanaan program ini adalah:

    Penting: Indeks suatu elemen dalam array asosiatif tidak boleh berupa angka, melainkan sebuah kata (type rangkaian)

    Mari kita lihat sebuah contoh:

    Contoh: Buatlah array siswa dengan nilai nama depan, nama belakang dan umur siswa. Menampilkan nilai elemen array

    $siswa = array("Nama" => John, "Nama Belakang" => Smith, "Umur" => 20); gema "nama pengguna" . $siswa["Nama"] . "


    ";

    $siswa["Nama"] = "John"; $siswa["Nama Keluarga"] = "Smith"; $siswa["Umur"] = 20; gema "nama pengguna" . $siswa["Nama"] . "
    "; echo "nama belakang pengguna " . $siswa["Nama Belakang"] . "
    "; echo "umur pengguna " . $siswa["Umur"] . "
    ";

    Hasil:

    Penting: Kunci string (indeks) harus selalu diapit tanda kutip

    Array yang diindeks tanpa kunci:

    Perlu juga diingat bahwa indeks dalam array tidak perlu ditulis sama sekali saat menginisialisasi array dengan nilai. Kemudian kita membuat apa yang disebut koleksi array(objek koleksi):

    $siswa = array("John", "Smith" , 20 ) ;

    $siswa = array("John","Smith", 20);

    Dalam hal ini, penerjemah sendiri akan memberi mereka indeks numerik, mulai dari 0

    Contoh ketik konversi dan penulisan ulang elemen.
    Perhatikan penggunaan prosedur var_dump()

    1 2 3 4 5 6 7 8 9 "a" , "1" => "b" , 2 => "c" , 2 => "d" , ) ; var_dump ($my_array) ; ?>

    "a", "1"=> ​​​​"b", 2 => "c", 2 => "d",); var_dump($array_saya); ?>

    Hasil:

    Larik(3) ( => string(1) "a" => string(1) "b" => string(1) "d" )

    Contoh menggunakan array multidimensi dan mengatur akses ke elemen-elemennya

    1 2 3 4 5 6 7 8 9 10 11 12 "1", 2 => 2 , "multi" => larik ( "1_1" => "1_1" ) ) ; var_dump($array_odnom["pertama"]); var_dump($array_odnom[2]); var_dump($array_odnom["multi"]["1_1"]); ?>

    "1", 2 => 2, "multi" => larik("1_1" => "1_1")); var_dump($array_odnom["pertama"]); var_dump($array_odnom); var_dump($array_odnom["multi"]["1_1"]); ?>

    Hasil:

    Tali(1) "1" ke dalam(2) tali(3) "1_1"

    Contoh: membuat array dua dimensi dengan dimensi 3 x 2. Isi dengan nilai untuk baris pertama: “1_1”, “1_2”, “1_3”; untuk baris kedua: “2_1”, “2_2”, “2_3”. Menampilkan elemen pertama array


    Pertunjukan:
    1 2 3 4 5 6 7 8 9 10 11 12 $array_odnom = larik ( 1 => larik ( 1 => "1_1" , 2 => "1_2" , 3 => "1_3" ) , 2 => larik ( 1 => "2_1" , 2 => "2_2" , 3 => "2_3" ) , ) ; echo $array_odnom [ 1 ] [ 1 ] ;

    $array_odnom = larik(1 => larik(1 => "1_1", 2 => "1_2", 3 => "1_3"), 2 => larik(1 => "2_1", 2 => "2_2" , 3 => "2_3")),); gema $array_odnom;

    Pekerjaan php2_1: buat array dua dimensi 3 x 3 - pojok kiri atas tabel perkalian Pythagoras (1, 2, 3; 4, 6, 8 ...)



    Pekerjaan laboratorium:
    Katakanlah Anda memiliki semacam iklan dan beberapa orang berbeda yang ingin Anda kirimi iklan ini. Untuk melakukan ini, Anda membuat template dengan konten iklan, di dalamnya terdapat sejumlah parameter yang berubah: serangkaian nama orang dan serangkaian peristiwa. Tampilkan satu versi iklan terakhir di layar. Untuk mendefinisikan array, gunakan array asosiatif.

    Gunakan template iklan dan fokus pada warna:

    Merah – array.
    Coklat – variabel numerik.
    Biru – konstan.

    Ivan Ivanovich yang terhormat!
    Kami mengundang Anda untuk Hari terbuka.
    Tanggal acara: 12 Mei.
    Hormat kami, Vasily.


    Lengkapi kodenya:
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 // deklarasi sebuah konstanta definisikan("TANDA", "Hormat kami, Vasya") ; // array untuk nama penerima$nama = larik (... ) ; // array untuk acara$acara = larik("pintu_op" => "Hari terbuka", "vistavka" => "pameran", ... ) ; $str = "$nama yang terhormat!
    "
    ; $str .= ...; $str .= ...; gema...;

    // deklarasi konstanta mendefinisikan("TANDA","Salam, Vasya"); // array untuk nama penerima $nama = array(...); // array untuk acara $events = array("op_doors" => "hari terbuka", "vistavka" => "pameran", ...); $str = "$nama yang terhormat!
    "; $str .= ...; $str .= ...; gema ...;

Mari kita lanjutkan mempelajari array. Pada artikel sebelumnya kita telah mempelajari cara mendeklarasikan array; menemukan: untuk apa mereka dibutuhkan dan di mana mereka dapat digunakan; berkenalan dengan array multidimensi dan asosiatif. Sekarang adalah waktunya untuk membicarakan tentang iterasi elemen array.
Seringkali perlu untuk melakukan iterasi seluruh elemen array dan melakukan beberapa tindakan pada elemen tersebut.

Ini dapat dilakukan dengan berbagai cara: dengan dan tanpa loop. Misalnya, di artikel sebelumnya kita menerima semua kunci dari array asosiatif, mengulanginya dan mengeluarkannya menggunakan loop untuk setiap. Di sana kami tidak memikirkan topik iterasi elemen array menggunakan loop, karena ini layak untuk dijadikan topik terpisah.

Hari ini, kita akan membahas tentang bagaimana Anda dapat melakukan iterasi melalui elemen array. Anda akan mengenal cukup banyak fungsi baru. Baiklah, mari kita mulai!

Pertama, mari kita bicara tentang iterasi elemen array menggunakan loop.

Untuk ini, 3 jenis siklus digunakan untuk, depan dan sementara.

Perulangan melalui elemen array. untuk() lingkaran

Untuk melakukan iterasi melalui elemen array daftar, Anda dapat melakukan hal berikut:

1. Pertama kita mendeklarasikan array itu sendiri;

3. Setelah kita mendeklarasikan siklusnya untuk, dimana dalam tanda kurung kita menetapkan counter (variabel “i” dinyatakan dengan nilai nol, jika variabel ini lebih kecil dari jumlah total elemen array, maka setiap iterasi nilai “i” akan bertambah satu );

4. Dan di badan loop Anda sudah dapat menentukan apa yang harus dilakukan dengan setiap elemen array. Anda dapat, misalnya, menampilkannya di layar.

Semua hal di atas diilustrasikan dengan kode berikut:

"; } ?>

Sebagai hasil dari eksekusinya, kita akan melihat di layar nilai elemen array, masing-masing ditampilkan pada baris baru.

Perulangan for dan array asosiatif

Namun metode ini tidak lagi cocok untuk menghitung elemen array asosiatif karena alasan sederhana bahwa indeks array asosiatif bukanlah angka, melainkan string.

Untuk mengulang elemen array asosiatif untuk Anda dapat menggunakan konstruksi berikut:

" .$Mass[$kunci] . "
"; } ?>

Seperti yang Anda lihat, kami telah mendeklarasikan array asosiatif.

reset() – menyetel penunjuk ke elemen pertama array;

next() – menggerakkan pointer satu elemen array ke depan;

key() – mengembalikan kunci elemen array saat ini.

Dan kemudian di badan loop kita menampilkan indeks elemen array, panah dan nilai elemen array. Kami mencetak setiap pasangan nilai indeks pada baris baru.

Juga sebagai gantinya mengatur ulang() dapat digunakan akhir(), maka penunjuk akan disetel ke elemen terakhir array. Namun dalam kasus ini, hal itu diperlukan Berikutnya() menggunakan sebelumnya() untuk menggerakkan penunjuk ke belakang, bukan ke depan.

Dengan cara ini kita dapat melakukan iterasi melalui elemen array asosiatif dalam urutan terbalik.

Seperti yang mungkin Anda ketahui, siklusnya untuk Ini digunakan tidak hanya untuk bekerja dengan array.

Tapi loop berikutnya, yang akan kita pertimbangkan, digunakan secara eksklusif untuk bekerja dengan array.

Perulangan melalui elemen array. putaran depan()

Siklus untuk setiap() memungkinkan kita bekerja dengan array daftar biasa dan array asosiatif.

Berikut adalah contoh cara kerja loop untuk melakukan iterasi melalui elemen array daftar sederhana dan menampilkan semua nilai elemen array di layar.

"; } ?>

Hasilnya, kita akan melihat di layar semua nilai elemen array ini.

Untuk array asosiatif, konstruksi ini akan tetap sama persis (kecuali, tentu saja, pada awalnya kita tidak akan mendeklarasikan array daftar, tetapi array asosiatif) dan sekali lagi kita akan melihat di layar semua nilai dari array asosiatif. elemen susunan.

Tetapi jika kita ingin menampilkan tidak hanya nilai elemen, tetapi juga kuncinya (Anda ingat bahwa untuk array asosiatif, indeksnya adalah nilai string), maka loop ini perlu sedikit diperbaiki.

$nilai) ( gema $kunci . "=>" .$nilai . "
"; } ?>

Dan dalam hal ini, kita akan melihat di layar sepasang: kunci - nilai, di antaranya akan ada panah.

Perulangan melalui elemen array. sementara() lingkaran

Perulangan lain yang dapat kita gunakan untuk mengulangi semua elemen array adalah perulangan ketika().

Pada saat yang sama, dua fungsi lagi akan membantu kita, yang akan kita gunakan bersamaan dengan siklus ini. Inilah fungsinya daftar() Dan setiap().

Dalam kasus array daftar, kita akan menggunakan loop ini - seperti ini:

"; } ?>

Anda mungkin sudah menebak bahwa di layar kita akan melihat nilai elemen array.

Inilah fungsinya setiap() mengembalikan elemen array saat ini dan kemudian memindahkan pointer.

Dalam kasus array asosiatif, prosedurnya tetap sama jika kita hanya perlu mendapatkan nilai elemen array. Namun jika kita juga ingin mendapatkan kunci dari setiap elemen, maka kodenya perlu sedikit ditambah. Seperti ini:

" .$nilai ."
"; } ?>

Inilah cara kami mendapatkan kunci dan nilainya.

Perulangan melalui elemen array tanpa menggunakan perulangan

Anda dapat mengulangi elemen array tanpa menggunakan loop. Untuk ini kita akan menggunakan fungsi khusus larik_berjalan().

Fungsi ini berfungsi sebagai berikut: memungkinkan Anda menerapkan fungsi yang dibuat secara terpisah secara berurutan ke semua elemen array. Artinya, pertama-tama kita membuat fungsi independen, lalu menggunakannya larik_berjalan() menerapkannya ke setiap elemen array. Selain itu, dalam fungsi yang dibuat secara independen, kita dapat menentukan tindakan apa pun yang kita perlukan pada elemen array.

Mari buat fungsi yang akan mencetak kunci dan nilai elemen array ke layar, lalu gunakan larik_berjalan() menerapkannya ke setiap elemen array kita.

" .$nilai ."
"; ) $Mass["Satu"] = 5; $Mass["Dua"] = 10; $Mass["Tiga"] = 15; array_walk($Mass, "f_print"); ?>

Hasilnya, kita akan melihat yang berikut ini di layar.

Mungkin hanya itu yang ingin saya sampaikan kepada Anda tentang iterasi elemen array.

Untuk lebih memahami cara kerjanya, saya menyarankan Anda untuk mengerjakan sendiri setiap contoh, dan mungkin berlatih dengan contoh Anda sendiri.

Pada artikel selanjutnya, kita akan membahas tentang menambah dan menghapus elemen array di tempat yang berbeda.

Saya menantikan komentar Anda. Bagikan artikel dengan teman Anda menggunakan tombol jejaring sosial dan berlangganan pembaruan blog untuk selalu mengetahui publikasi baru.

Anna Kotelnikova bersamamu. Semoga beruntung dan sampai jumpa lagi!

(array dalam array, matriks)
5. Fungsi untuk bekerja dengan array (array di dalam array, matriks)

Apa itu array PHP?

Saya ingin memulai topik ini dengan contoh-contoh yang ditinggalkan. Katakanlah kita sedang mempertimbangkan beberapa orang. Dia punya nama depan, nama belakang, alamat, nomor telepon, jenis kelamin, tinggi badan, warna mata dan seterusnya. Informasi tentang semua poin ini dapat dikaitkan dengan serangkaian data tentang seseorang.

Array mungkin bertipe berbeda, tanpa item spesifik apa pun. Hanya akan ada satu topik. Katakanlah ini pemrograman web. Dan elemennya adalah bahasa - HTML, CSS, JavaScript, PHP, MySQL. Total ada 5 elemen.

Berdasarkan contoh terakhir, mari kita asumsikan sebuah array:

pemrograman web
1.HTML
2.CSS
3.JavaScript
4.PHP
5.MySQL

Sekarang lihat contoh ini dan analisis konsep dasarnya.

Array di PHP adalah sekumpulan data yang terletak berurutan dari tipe yang sama, dihubungkan oleh tema yang sama, yang jumlah elemennya tetap.

Array dalam contoh ini akan dipanggil pemrograman web.

Setiap elemen memiliki tempat ordinalnya sendiri, pengidentifikasi.
Indeks(kunci array) - nomor urut atau nilai teks yang dapat digunakan untuk mengidentifikasi suatu elemen.

Indeks pada contoh di atas adalah nilai numerik dari 1 hingga 5. Saat mengakses indeks 2 kita akan melihat CSS.

Contoh array di PHP

Sekarang mari kita lihat contoh di atas dalam sintaks PHP, bukan bahasa Rusia. Katakanlah array akan dipanggil lebih pendek - web. Tanda kurung siku akan menyisipkan indeks.
Mari kita lihat contoh sederhana dari sebuah array, di mana nilai indeks akan berisi nilai numerik, dan kita akan membuat array seolah-olah kita sedang memberikan nilai ke variabel.

$web="HTML";
$web="CSS";
$web="JavaScript";
$web="PHP";
$web="MySQL";

$web; // variabel ini berisi array dengan 5 elemen

// untuk menampilkan salah satu elemen array, cukup tentukan indeks dalam array
gema $web; // mencetak PHP

Array satu dimensi

ARRAY INDEKS

Di atas, dengan pemrograman web, kita hanya melihat contoh array satu dimensi.
Jarang sekali dibuat dengan cara ini. Ini secara visual menunjukkan struktur array. Lebih sering mereka menggunakan metode lain.

$web=array("HTML","CSS","JavaScript","PHP","MySQL");
gema $web; // akan menampilkan "HTML"
gema $web; // akan menampilkan "JavaScript"
gema $web; // akan mencetak "PHP"

Jika Anda ingin menetapkan nilai indeks, Anda harus menentukannya sebagai berikut. Tanda => adalah penunjuk untuk menetapkan indeks ke suatu nilai, atau sebaliknya ke nilai indeks.

$web=array(1=>"HTML",2=>"CSS",3=>"JavaScript",4=>"PHP",5=>"MySQL");
gema $web; //HTML
gema $web; // CSS
gema $web; //PHP
Dalam contoh, penghitungan dimulai dari 1. Oleh karena itu, variabel dengan indeks 0 kosong.

Dalam contoh berikut kami tidak akan menentukan indeks.

$hari="Senin"; // indeks 0
$hari="Selasa"; // 1
$hari="Rabu"; // 2
$hari="Kamis"; // 3
$hari="Jumat"; // 4
Anda dapat melihat bahwa pengisian berurutan terjadi dari awal.

ARRAY ASOSIASI

Seringkali ada kebutuhan untuk membuat indeks huruf untuk elemen array. Seperti yang saya sebutkan di atas, indeks tersebut harus terdiri dari huruf latin, dan namanya harus diapit tanda petik. Mari kita lihat contoh seseorang.

$pengguna["nick"]="Logika";
$pengguna["nama"]="Pavel";
$pengguna["usia"]="25";
$pengguna["jenis kelamin"]="Pria";

$pengguna; // variabel $user berisi array dengan 4 elemen dengan indeks huruf

// menampilkan elemen array, menunjukkan indeks hurufnya
echo $web["nama"]; // akan mencetak "Pavel"
Seperti yang Anda lihat, semuanya cukup sederhana. Hanya nilai indeks yang dikutip.

Array dua dimensi

Jika Anda melewatkan bagian pertama tentang Array Satu Dimensi, saya sangat menyarankan Anda untuk membacanya.
Sederhananya, ini adalah array di dalam array. Artinya, elemen array besar berbeda. Array seperti itu sangat memperlambat kerja skrip, memuat RAM, jadi untuk memproses kelompok data tersebut dengan cepat, Basis Data telah dibuat (Apa itu Basis Data?), tetapi akan dibahas lebih lanjut nanti. Mari kita lihat contoh array dua dimensi.

// array dengan nama Bagian Dunia
$m = array("Eropa","Asia","Afrika","Amerika","Australia dan Oseania");

// array dengan nama Negara
$s = array("Rusia","Ukraina","Belarus","Kazakhstan");

// array dengan nama Ibukota
$с = array("Moskow","Kyiv","Minsk","Astana");

// membuat array dua dimensi Geografi
$geografi = array($m, $s, $c);
?>
Array yang disertakan, seperti yang Anda perhatikan, dapat memiliki jumlah elemen yang berbeda. Dari bagian array satu dimensi dapat disimpulkan bahwa setiap elemen array dapat memiliki indeks. Jadi mari kita tetapkan nilai berbeda untuk setiap array yang disertakan.

Untuk melakukan ini, perluas baris terakhir dan tuliskan sebagai berikut.

$geografi = array("Bagian Dunia"=>$m, "Negara"=>$s, "Ibukota"=>$s);

Fungsi untuk bekerja dengan array php

Untuk setiap- fungsi siklik untuk bekerja dengan array, di mana jumlah siklus sama dengan jumlah elemen array.

Ini terlihat seperti ini: kode PHP

Foreach (array sebagai $key=>$value)
tim;
Nah, langsung saja contoh pekerjaannya

// membuat array dengan IT terkenal
$nama["Ritchie"] = "Dennis";
$nama["Thompson"] = "Ken";
$name["Gerbang"] = "Tagihan";
$nama["Pekerjaan"] = "Steve";

Foreach ($nama sebagai $key => $value) (
gema "$nilai $kunci";
}
?>
Script akan ditampilkan di layar

Dennis Richie
Ken Thompson
Bill Gates
Steve Jobs
Menghitung- fungsi yang mengembalikan jumlah elemen dalam array.

Jumlah gema($nama); // dalam contoh kita dengan IT akan mengembalikan nilai 4
Menyortir- fungsi yang mengurutkan elemen array. Nyaman untuk nilai indeks numerik.
bermacam-macam- fungsi yang mengurutkan elemen array dalam urutan terbalik.

Sortir($nama); // mengurutkan secara berurutan. Akan lebih mudah jika ada angka di Indeks
arsort($nama); // urutkan dalam urutan terbalik. Artinya, berdasarkan indeks, elemen-elemennya akan berada pada urutan 3, 2, 1, 0
Tidak disetel- fungsi yang menghapus elemen array.

Tidak disetel($array); // menghapus elemen array dengan indeks 2
tidak disetel($array); // menghapus seluruh array
Array_pencarian- fungsi pencarian dalam array. Memiliki dua argumen. Sederhananya, ia memiliki array_search("apa", di mana)

$hewan="anjing";
$hewan="kucing";
$hewan="burung";
echo array_search("kucing",$hewan); // akan menampilkan indeks elemen - nomor 2
Acak- fungsi yang mengacak kunci nilai array.

Acak($hewan); // menyusun elemen dalam urutan acak
Terima kasih atas perhatian Anda!

$arr [ 1 ] = "PHP" ;
$arr [ 2 ] = "MySQL" ;
$arr [ 3 ] = "Apache" ;
?>

Elemen array dapat digunakan dalam tanda kutip ganda seperti halnya variabel biasa, begitu juga kode

echo "$arr $arr $arr" ;
?>

$arr[ "pertama" ] = "PHP" ;
$arr[ "kedua" ] = "MySQL" ;
$arr[ "ketiga" ] = "Apache" ;
?>

Dalam hal ini array dipanggil asosiatif, dan indeksnya disebut kunci. Untuk menampilkan elemen array dalam string, tanda kutip (baik ganda maupun tunggal) tidak boleh ditentukan:

gema "$arr $arr $arr";
?>

Karena array asosiatif tidak memiliki indeks, tipe loop khusus telah diperkenalkan untuk melintasinya - untuk setiap:

foreach($arr sebagai $kunci => $nilai )
{
gema "$kunci = $nilai
" ;
}
?>

Sebagai hasil dari perulangan, tiga baris akan dihasilkan

pertama = PHP
kedua = MySQL
ketiga = Apache

Konstruksi "$key =>", yang memungkinkan akses ke kunci array pada setiap loop, bersifat opsional dan dapat dihilangkan:

foreach($arr sebagai $nilai )
{
gema "$nilai
" ;
}
?>

Sejumlah fungsi juga memungkinkan Anda mengembalikan array, misalnya fungsi mengajukan(), yang membaca file dan mengembalikan isinya sebagai array. Setiap elemen array berhubungan dengan satu baris.

$arr = file("teks.txt");
untuk($i = 0 ; $i< count ($arr ); $i ++)
{
gema $arr [ $i ]. "
" ;
}
?>

Fitur berguna lainnya adalah fungsinya meledak(), yang memungkinkan Anda membagi string menjadi beberapa fragmen, yang masing-masing ditempatkan dalam elemen array terpisah:

$str = "345|[dilindungi email]|http://www.softtime.ru|login|kata sandi";
$arr = meledak("|" , $str );
untuk($i = 0 ; $i< count ($arr ); $i ++)
{
gema $arr [ $i ]. "
" ;
}
?>

Hasil skripnya mungkin terlihat seperti ini:

345
[dilindungi email]
http://www.softtime.ru
Gabung
kata sandi

Ada juga fungsi kebalikannya - implode(), yang menggabungkan elemen array menjadi string menggunakan pembatas tertentu:

$arr = "345" ;
$arr = " [dilindungi email]" ;
$arr = "http://www.softtime.ru" ;
$arr = "masuk" ;
$arr = "kata sandi" ;
$str = meledak ("##", $arr );
gema $str; //345##[dilindungi email]##http://www.softtime.ru##login##kata sandi
?>

Komentar

Secara umum, ada banyak sekali fungsi yang menghilangkan string; pembahasan semuanya berada di luar cakupan artikel ini.

Anda dapat menghapus satu elemen array menggunakan fungsi tersebut tidak disetel(), dan Anda dapat memeriksa keberadaan array menggunakan fungsi tersebut isset(). Mari kita definisikan array yang terdiri dari 10 elemen dan hancurkan setiap elemen genap.

tidak disetel($arr [ 0 ], $arr [ 2 ], $arr [ 4 ], $arr [ 6 ], $arr [ 8 ]);
// Periksa apakah elemen array ada
untuk($i = 0 ; $i< 10 ; $i ++)
{
if(isset($arr [ $i ])) gema "Elemen $arr[$i] didefinisikan
"
;
lain gema "Elemen $arr[$i] tidak terdefinisi
"
;
}
?>

Hasil skripnya adalah baris berikut

Elemen $arr tidak terdefinisi
Elemen $arr didefinisikan
Elemen $arr tidak terdefinisi
Elemen $arr didefinisikan
Elemen $arr tidak terdefinisi
Elemen $arr didefinisikan
Elemen $arr tidak terdefinisi
Elemen $arr didefinisikan
Elemen $arr tidak terdefinisi
Elemen $arr didefinisikan

Menggunakan fungsi tidak disetel() Anda dapat menghancurkan seluruh array sekaligus.

$arr = susunan(9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
tidak disetel($arr);
jika(isset($arr )) gema "Array ditentukan";
lain gema "Array tidak ditentukan";
?>

Sebelumnya, array dibuang menggunakan loop, tetapi PHP menyediakan fungsi khusus untuk membuang array cetak_r(). Fungsi ini difokuskan pada keluaran ke aliran konsol, jadi saat mengeluarkan hasil ke jendela browser, lebih baik membingkainya dengan tag

DAN
:

$arr = "345";
$arr = " [dilindungi email]";
$arr = "http://www.softtime.ru";
$arr = "masuk";
$arr = "kata sandi";
gema "

";
print_r($arr);
gema "
";
?>

Hasil scriptnya seperti ini:

Himpunan
=> 345
=> [dilindungi email]
=> http://www.softtime.ru
=> masuk
=> kata sandi
)

Array multidimensi

Tidak hanya besaran skalar, array itu sendiri juga dapat berperan sebagai elemen array. Dalam hal ini, kita mendapatkan apa yang disebut multidimensi array.

Misalkan Anda perlu mendapatkan tabel berikut:

Untuk melakukan ini, mari buat array dua dimensi:

$arr = array(array('Vasya' , 'tukang kunci' , 2500 ),
array('Misha', 'pembangun', 3000),
array('Andrey', 'pengemudi', 2700));
?>

Sekarang tabel dapat ditampilkan menggunakan kode berikut:

untuk ($i = 0; $i< 3 ; $i ++)
{
untuk ($j = 0 ; $j< 3 ; $j ++)
{
gema " | " . $arr[$i][$j];
}
gema "
" ;
}
?>

Hasil:

| Vasya | tukang kunci | 2500
| misa | pembangun | 3000
| andrey | pengemudi | 2700

Anda juga dapat menggunakan tiga dimensi, empat dimensi, dll. array.

Operasi pada array (kumpulan resep)

1) Menentukan jumlah elemen dalam array menghitung():

Mari kita membuat array $nama:

?>

Untuk menentukan jumlah elemen dalam array, Anda dapat melakukan hal berikut:

gema 'Jumlah elemen dalam array- ' . hitungan($nama);
?>

Hasil:

Jumlah elemen dalam array – 8

2) Menggabungkan array

a) Buat dua array asosiatif $a dan $b:

$a = larik(“a” => ”aa” , “b” => “bb” );
$b = larik(“c” => ”cc” , “d” => “dd” );
?>

Misalkan Anda perlu membuat array $c, yang akan berisi elemen array $a dan array $b:

$a = larik("a" => "aa", "x" => "xx" );
$b = array("c" => "cc" , "d" => "dd" );
$c = $a + $b ;
gema "

"
; 
print_r($c);
gema "
" ;
?>

Hasil:

Himpunan
[a] => aa
[x] => xx
[c] => cc
[d] => hh
)

b) Buat dua array numerik $a dan $b:

$a = susunan(10, 20);
$b = susunan(100 , 200 , 300 , 400 , 500 );
?>

Mereka tidak dapat lagi digabungkan menggunakan konstruksi $c = $a + $b;. Untuk menggabungkannya, Anda perlu menggunakan fungsi tersebut array_merge():

$c = array_merge ($a, $b);
?>

3) Penyortiran susunan

Mari kita gunakan array $name:

$name = array("Boss" , "Lentin" , "NAV" , "Endless" , "Dragons" , "SiLeNT" , "Doctor" , "Lynx" );
?>

Misalkan Anda ingin mengurutkan array berdasarkan abjad, untuk ini Anda dapat menggunakan kode berikut:

sort($nama);
gema "

"
; 
print_r($nama);
gema "
" ;
?>

Hasil:

Himpunan
=> Bos
=> Dokter
=> Naga
=> Tak ada habisnya
=> Prapaskah
=> Lynx
=>NAB
=> Diam
)

Misalkan Anda perlu memilih elemen terpendek (yang memiliki jumlah karakter terkecil) dari array $name, dalam hal ini Anda dapat menggunakan kode:

$name = array("Boss" , "Lentin" , "NAV" , "Endless" , "Dragons" , "SiLeNT" , "Doctor" , "Lynx" );
$min = strlen($nama[0]);
$nama = $nama [ 0 ];
untuk ($i = 1 ; $i< count ($name ); $i ++)
{
$len = strlen ($nama [ $i ]);
jika ($len< $min )
{
$nama = $nama [ $i ];
$min = strlen ($nama );
}
}
gema "Panjang terpendek -". $nama;
?>

4) Pindah ke dalam array

Mari kita membuat array $num:

?>

Misalkan Anda ingin menampilkan elemen array dalam urutan terbalik, dalam hal ini Anda dapat menggunakan kode:

$akhir = akhir($angka);
Sementara ($akhir)
{
gema $akhir. " - " ;
$akhir = sebelumnya($angka);
}
?>

Hasil:

10 - 9 - 8 - 7 - 6 - 5 - 4 - 3 - 2 – 1

Kode di atas dapat dimodifikasi:

$angka = rentang(1, 10);
print_r(array_reverse($angka));
?>

Fungsi rentang(1,10) membuat array (1,2,3,4,5,6,7,8,9,10) dengan susunan elemen acak. Fungsi array_terbalik() mengambil array dan menyusun elemen dalam urutan terbalik (10,9,8,7,6,5,4,3,2,1)

Fungsi Berikutnya(), setiap() menggerakkan penunjuk ke depan satu elemen. Fungsi mengatur ulang() mengembalikan pointer ke 1 elemen dalam array. Mari kita gunakan array $num:

$angka = larik(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
?>

Misalkan Anda perlu mengeluarkan semua elemen secara berurutan, dan mengembalikan pointer ke elemen pertama array pada elemen terakhir array. Operasi ini dapat dilakukan dengan menggunakan kode berikut.

Selamat siang, habrazhiteliki!

Dalam artikel saya, saya ingin berbicara tentang pemrosesan array asosiatif multidimensi di PHP. Menurut pendapat saya, mendapatkan informasi yang diperlukan dari array multidimensi tidak selalu mudah. Itu satu hal jika arraynya dua dimensi:

array("kunci1" => "nilai1", "kunci2" => "nilai2")); ?>

Kemudian, tentu saja, mudah untuk mendapatkan nilai yang kita minati:

Gema $array["dimension1"]["kunci1"]; // nilai1

Tetapi bagaimana jika kita memiliki array berdimensi n? Misalnya, lima dimensi:

$array = array("dimension1" => array("dimension2" => array("dimension3" => array("dimension4" => array("dimension5" => array("value1" => "Hai! Saya\ "m value1", "value2" => "Hai! Saya\"m value2"))))));

Untuk mendapatkan nilai berdasarkan kunci, misalnya “nilai1”, kita perlu menulis kode berikut:

Gema $array["dimension1"]["dimension2"]["dimension3"]["dimension4"]["dimension5"]["nilai1"]; // Hai! Saya bernilai1

Saya tidak akan menyebut rekaman seperti itu indah, meskipun itu benar. Saya menyarankan untuk membuat notasi ini sedikit lebih bagus dengan membuatnya terlihat seperti ini:

Echo easyA($array)->dimension1->dimensi2->dimensi3->dimensi4->dimensi5->nilai1; // Hai! Saya bernilai1

Setuju, ini terlihat jauh lebih bagus dibandingkan dengan rekaman standar.

Jadi, pertama-tama kita perlu membuat kelas yang akan memproses array kita. Sebut saja easyArray dan jadikan Singleton:

Kode

class easyArray( private static $instance; // Status kelas. private $Array; // Array yang diteruskan ke kelas. private function __construct())( // Mengajukan konstruktor. ) private function __clone())( / / Mengajukan metode kloning. ) public static function getInstance())( if(null === self::$instance)( self::$instance = new self(); ) return self::$instance; )

Setelah kelas kita menjadi singleton, kita akan menambahkan metode yang sangat penting ke dalamnya, yang akan menulis array yang dihasilkan ke dalam variabel privat:

Kode

public function loadArray($newArray)( if(is_array($newArray))( $this->Array = $newArray; return $this; )else( $error = "Maaf, Anda tidak meneruskan array."; throw new Pengecualian( $kesalahan); ) )
Dari kode tersebut Anda dapat melihat bahwa kami juga memeriksa apa yang diteruskan ke input metode. Jika bukan array yang diteruskan, kami hanya akan mengeluarkan pengecualian dengan kesalahan " Sayangnya, Anda tidak meneruskan array". Jika pemeriksaan berhasil, kami menulis array yang dihasilkan ke variabel pribadi dan mengembalikan objek saat ini.

Nah, sekarang kita akan mengganti metode ajaib "__get()" dari kelas kita. Hal ini diperlukan untuk mendapatkan hasil yang kita inginkan. Jadi:

Kode

fungsi publik __get($index)( if(isset($this->Array[$index]))( if(is_array($this->Array[$index]))( $this->loadArray($this-> Array[$index]); return $this; )else( return $this->Array[$index]; ) )else( $error = "Kunci tidak ada (".$index.") dalam array"; throw new Exception ($kesalahan); ) )

Pertama-tama, kami memeriksa keberadaan kunci yang diminta dalam array; jika tidak ada, kami mengeluarkan pengecualian dengan kesalahan " "Kunci tidak ada (".$index.") dalam array"". Selanjutnya, kita periksa apakah kunci yang diminta adalah array. Jika ada nilai untuk kunci tersebut di dalam array, maka kita cukup mengembalikan nilai ini. Dan jika itu adalah array, maka kita kirimkan ke " loadArray($Array baru)" dan mengembalikan objek saat ini ($ini).

Dan, sebagai sentuhan terakhir pada kelas kita, mari tambahkan metode yang akan mengembalikan array saat ini yang sedang digunakan oleh kelas kita:

Kode

fungsi publik arrayReturn() ( return $this->Array; )

Jadi kelas kita sudah siap, tapi untuk mendapatkan nilainya sekarang kita harus menggunakan kode seperti ini:

Echo easyArray::getInstance()->loadArray($array)->dimension1->dimension2->dimension3->dimension4->dimension5->nilai1; // Hai! Saya bernilai1

Itu menjadi lebih lama dari sebelumnya. Tapi masalah ini bisa diselesaikan, dan untuk ini kita memerlukan fungsi sederhana:

Fungsi easyA($newArray)( kembalikan easyArray::getInstance()->loadArray($newArray); )

Nah, sekarang mari kita periksa apa yang kita dapatkan sebagai hasilnya:

Kode

array("dimension2" => array("dimension3" => array("dimension4" => array("dimension5" => array("nilai1" => "Hai! Saya\"m nilai1", "nilai2" => "Hei! Saya bernilai2")))))); require_once("easyArray.php"); require_once("easyArrayFunction.php"); echo easyA($array)->dimensi1->dimensi2->dimensi3->dimensi4->dimensi5->nilai1; // Hai! Saya\"m value1 echo easyA($array)->dimension1->dimension2->dimension3->dimension4->dimension5->value2; // Hai! Saya\"m value2 ?>
Semuanya berfungsi sebagaimana mestinya.

Selain itu, kelas ini dapat diteruskan file konfigurasi seperti:

Kode

array("dimension2" => array("dimension3" => array("dimension4" => array("dimension5" => array("value1" => "Hai! Saya\"m value1 dari file array.php", "value2" => "Hai! Saya mendapatkan nilai2 dari file array.php")))))); ?>


Untuk melakukan ini, Anda perlu menggunakan konstruksi berikut:

Kode

echo easyA(require_once("array.php"))->dimension1->dimension2->dimension3->dimension4->dimension5->nilai1; // Hai! Saya nilai1 dari file array.php

Saya mungkin telah menemukan kembali rodanya, tetapi menurut saya artikel ini akan menarik bagi pemula dan pemrogram lainnya.

Terima kasih atas perhatian Anda.