KomputerPemrograman

PHP: array dalam array Mencari dalam array PHP

Pemrograman adalah sintaks dan semantik. Yang pertama ditentukan oleh aturan bahasa, yang kedua oleh pengembang pengalaman. Sehubungan dengan array, pengembang secara obyektif memuat sintaks dengan semantik. Ini bukan sebuah objek, tapi tidak lagi array dalam pengertian tradisional. PHP memungkinkan untuk membuat array variabel dari berbagai jenis, termasuk diri mereka sendiri. Elemen array dapat berupa fungsi, yaitu kemampuan untuk memuat array dengan algoritma yang sebenarnya, dengan makna sebenarnya.

Sintaksnya stabil, namun bervariasi dari versi ke versi dan tidak bisa selalu kompatibel, bahkan dari bawah ke atas. Program portabilitas - prestasi yang terlupakan dari abad terakhir. Semantik berkembang dan selalu bisa diterapkan tidak hanya dalam versi bahasa apapun; Ini menjadi tradisi untuk menggunakan konstruksi sintaksis untuk mengungkapkan fakta bahwa bahkan tidak ada peraturan untuk bahasa tersebut. Pada contoh array, ini bisa dipahami dengan sederhana.

Konstruksi array

Array di PHP memiliki sintaks dan fungsionalitas yang mudah digunakan. Jenis data ini dapat dijelaskan sebelumnya, namun seringkali mudah untuk membuat array dengan cepat sesuai kebutuhan.

Publik $ aNone = array (); // array digambarkan dan tidak berisi apa-apa

Publik $ aFact = array ('alpukat', 'peach', 'cherry'); // dalam array ini ada tiga elemen

Membuat array sambil memeriksa suatu kondisi:

$ CSrcLine = 'string data parsing';

Untuk ($ i = 0; $ i <13; $ i ++) {

$ CUserLine = inputUserLine (); // masukan sesuatu

Jika (checkFunc ($ cSrcLine, $ cUserLine) {

$ AResult [] = 'Ya'; // tambahkan ke array PHP

} Else {

$ AResult [] = 'Tidak';

}

}

Sebagai hasil dari eksekusi contoh ini, sebuah array dari 13 elemen akan dibuat yang nilainya hanya akan menjadi garis 'Yes' atau 'No'. Elemen akan mendapatkan indeks dari 0 sampai 12. Efek yang sama dapat diperoleh dengan menulis array PHP "masa depan" ke baris:

$ CFutureArray = '';

Untuk ($ i = 0; $ i <13; $ i ++) {

$ CUserLine = inputUserLine (); // masukan sesuatu

Jika ($ i> 0) {$ cFutureArray. = '|'; }

Jika (checkFunc ($ cSrcLine, $ cUserLine) {$ cFutureArray. = 'Ya';

} Else {$ cFutureArray. = 'Tidak'; }

}

$ AResult = meledak ('|', $ cFutureArray);

Array multidimensional

Banyak sistem pengelolaan situs (SMS) menggunakan array "dalam skala besar". Di satu sisi, ini adalah praktik yang baik, di sisi lain, ini membuat aplikasi menjadi sulit. Bahkan jika penulis memahami doktrin "array PHP dalam array," maka seharusnya tidak disalahgunakan: pengembang tidak hanya harus terbiasa dengan notasi yang rumit. Seringkali setelah beberapa saat, pencipta itu sendiri akan mengingat sejak lama apa yang dia tulis pada awalnya:

Kembali array

'View_manager' => array (41, 'template_path_stack' => array (__DIR__. '/../view',),

'Router' => array ('routes' => array ('sayhello' => array (

'Type' => 'Zend \ Mvc \ Router \ Http \ Literal',

'Options' => array ('route' => '/ sayhello', 'defaults' => array (

'Controller' => 'Helloworld \ Controller \ Index', 'action' => 'index',))))),

'Controllers' => array ('invokables' => array (

'Helloworld \ Controller \ Index' => 'Helloworld \ Controller \ IndexController'))

);

Ini adalah contoh praktik "array PHP dalam array" dari ZF 2. Awalnya tidak banyak mengilhami, namun berhasil dan mungkin membuat kerangka kerja ini berhasil (contoh modul modul ZendSkeletonApplication / module / Helloworld / config / module.config.php).

Array adalah struktur data yang penting selama desain dan pengembangan. Versi multi-dimensinya pernah populer, namun seiring berjalannya waktu, ada kebutuhan untuk array maksimal dua atau tiga dimensi. Jadi lebih mudah dan lebih mudah dimengerti, tapi dari sudut pandang profesionalisme ketika sesuatu mulai bertambah banyak, itu berarti sesuatu dalam pernyataan masalah atau kode tidak demikian.

Sederhana, mudah diakses dan mudah dimengerti

Membuat array php dalam array, yang terbaik adalah membatasi dua atau tiga tingkat. Meski kestabilan dan kehandalan PHP, hal itu memungkinkan kesalahan dalam pengolahan konstruksi sintaksis. Hal ini dapat ditoleransi dengan memiliki editor kode yang baik, terbiasa untuk menghitung kurung dan koma. Namun, PHP tidak mengendalikan tipe data (inilah karma pemrograman modern) dan memungkinkan pengembang mempraktikkan kesalahan semantik.

Aturan untuk mengendalikan jenis variabel atau gagasan seseorang untuk mengubah semantik menjadi sintaks seringkali merupakan kemewahan yang tak dapat diterima. Ini adalah hilangnya kecepatan script, keterbacaan kode, ... oleh karena itu kesederhanaan dalam pengkodean selalu memiliki nilai yang signifikan.

PHP memiliki fitur negatif yang signifikan: ketika ketidakpastian muncul, script hanya hang. Tidak semua debugger mengatasi keadaan yang tidak terduga, dan banyak tergantung pada pengalaman dan intuisi pengembang. Algoritma yang lebih sederhana, semakin terstruktur informasinya, semakin besar kemungkinannya untuk menemukan kesalahan atau tidak mengakuinya sama sekali.

Ini adalah karakteristik bahwa ketika array pertama muncul, varian data diusulkan dalam bentuk struktur - usaha yang canggung untuk menciptakan sesuatu dari berbagai jenis data. Yang pertama bertahan dan memperoleh sintaks baru yang efektif, yang terakhir mencatatnya dalam sejarah.

Array Sederhana dan Asosiatif

Menulis array dua dimensi adalah sepasang tanda kurung lainnya "[" dan "]", misalnya: $ aSrcData [1] [2] mengacu pada elemen [2] array [1] yang memasuki array $ aSrcData. Di PHP, tidak ada persyaratan untuk mendeklarasikan data terlebih dahulu. Setiap informasi yang diumumkan selalu dapat diperiksa keberadaannya.

Hal ini sangat efektif untuk menciptakan sesuatu hanya jika dibutuhkan, dalam bentuk di mana diperlukan, dan untuk menghancurkannya bila kebutuhan akan hal itu telah hilang. Menggunakan nama yang bermakna sebagai kunci (indeks), Anda bisa mendapatkan konstruksi yang mudah dibaca yang bermakna dalam konteks tempat saat ini dalam algoritma:

$ AAnketa ['name'] = 'Ivanov';
$ AAnketa ['age'] = 42;
$ AAnketa ['work'] = 'Direktur';
$ AAnketa ['aktif'] = true;
$ ATable [] = $ aAnketa;

$ AAnketa ['name'] = 'Petrov';
$ AAnketa ['age'] = 34;
$ AAnketa ['work'] = 'Manajer';
$ AAnketa ['aktif'] = true;
$ ATable [] = $ aAnketa;

$ AAnketa ['name'] = 'Afanasiev';
$ AAnketa ['age'] = 28;
$ AAnketa ['work'] = 'Pekerja';
$ AAnketa ['aktif'] = salah;
$ ATable [] = $ aAnketa;

$ SOne. = Implode (";", $ aTable [1]). '
'; // array PHP kedua dalam sebuah string
$ SOne. = $ ATable [1] ['kerja']; // rujuk ke satu elemen dari array kedua

Hasil dari contoh ini (array pertama adalah normal, kunci di dalamnya dimulai dengan 0, array kedua adalah asosiatif, ada empat kunci di dalamnya: 'name', 'age', 'work', 'active'):

$ SOne = 'Petrov; 34; Manajer; 1
Manajer;

Dalam contoh sederhana ini, Anda dapat melihat bagaimana kuesioner yang dibuat dapat diterapkan ke semua karyawan. Anda dapat membuat array karyawan dengan indeks berdasarkan nomor layanan dan, jika Anda memerlukan karyawan tertentu, maka pilih nomor karyawannya.

Jika organisasi memiliki subdivisi, atau ada pekerja musiman, atau perlu untuk mengidentifikasi secara terpisah pensiunan yang bekerja, ... desain "array PHP dalam array" sangat mudah, tapi orang tidak boleh terbawa dengan dimensi. Dua atau tiga dimensi adalah batas untuk solusi yang efektif.

Tombol untuk bekerja dengan array

Jika sebelum itu penting, bagaimana semuanya berjalan baik, maka dalam beberapa tahun terakhir tradisi era biner, ketika programmer ingin tahu persis bagaimana elemen array disimpan, dan ingin memiliki akses langsung ke mereka, benar-benar terlupakan. Ada banyak pengkodean karakter yang memakan lebih dari satu byte di memori. Kata "bit" sekarang dapat ditemukan hanya dalam operasi pencarian bit, namun pencarian dalam array PHP adalah topik yang terpisah. Akses ke elemen bisa sederhana dan asosiatif. Dalam kasus pertama, elemen array (memiliki jenis yang tersedia di PHP) diberi nomor 0, 1, 2, ... Dalam kasus kedua, pemrogram menentukan indeksnya sendiri, sering disebut "kunci" untuk mengakses nilai yang diinginkan.

$ ALine ["fruit"] = "orange"; // di sini kunci PHP dari array = "buah"

Atau (jadi semuanya beres dengan pengkodean halaman dan kode):

$ ALine [iconv ('UTF-8', 'CP1251', "Fruit")] = iconv ('UTF-8', 'CP1251', "orange");

Saat menambahkan $ aLine ke nilai baru:

$ ALine [] = iconv ('UTF-8', 'CP1251', 'peach');
$ ALine [iconv ('UTF-8', 'CP1251', "vegetable")] = iconv ('UTF-8', 'CP1251', "mentimun");
$ ALine [] = iconv ('UTF-8', 'CP1251', 'terong');

Sebagai hasil dari siklus:

Foreach ($ aLine sebagai $ ck => $ cv) {
$ COne. = $ Ck. '='. $ Cv. '
';
}

Akan menerima:

Buah = jeruk
0 = persik
Sayuran = mentimun
1 = terong

Kunci PHP dari array saat menambahkan elemen 'peach' dan 'terong' terbentuk secara berurutan dari 0, dan saat menentukan nilainya akan sama dengan nilai ini.

Menghapus item dari array

Cara termudah untuk menghapus elemen array PHP selama pemrosesannya. Dalam kasus ini, misalnya, sebagai hasil dari eksekusi loop, array asli dipindai, dan yang baru dibuat, di mana unsur-unsur yang tidak perlu tidak ditulis.

Hal ini dimungkinkan untuk bertindak lebih mudah. Jika contoh terakhir diterapkan:

Unset ($ aLine [0]); // lepaskan elemen array PHP

Hasilnya adalah:

Buah = jeruk
Sayuran = mentimun
1 = terong

Varian dari manipulasi elemen array dapat dibangun banyak. Misalnya, dengan menggunakan fungsi: implode () dan meledak (), Anda dapat menulis sebuah array PHP ke dalam string single-delimited, dan mengurai kembali ke array lain - pemisah lain.

Untuk menghapus keseluruhan array di PHP, cukup tulis: unset ($ aLine);

Itu sudah cukup

Cari dalam sebuah array

PHP berisi fungsi pencarian khusus array_keys (), array_values (), array_key_exists (), dan in_array (), namun sebelum Anda memutuskan untuk menggunakannya, Anda harus mempertimbangkan untuk melakukan pencarian di array PHP sendiri.

Setiap proyek adalah area subjek tertentu , array yang dibangun, terutama bila sebagian dari semantik dialihkan ke sintaks dan ditunjukkan oleh serangkaian kunci bermakna yang cukup konkret. Ini memungkinkan Anda untuk melakukan fungsi pencarian Anda sendiri, yang juga bisa ditunjuk secara berarti.

Di PHP, Anda bisa memanggil fungsi yang namanya didefinisikan saat eksekusi program. Contoh praktis dari perpustakaan PHPWord, yang memungkinkan Anda membaca dan membuat dokumen MS Word:

$ Elements = array ('Teks', 'Inline', 'TextRun', 'Link', 'PreserveText', 'TextBreak',
ListItem, ListItemRun, Tabel, Gambar, Objek, Catatan kaki,
'Catatan Akhir', 'Kotak Centang', 'TextBox', 'Field', 'Line');

$ Fungsi = array ();

Untuk ($ i = 0; $ i $ Fungsi [$ i] = 'tambahkan'. $ Elemen [$ i];
}

Akibatnya, array $ functions akan mendapatkan nilai dari array elemen $, yaitu nama fungsi sebenarnya yang sesuai dengan elemen sebenarnya dari dokumen.

Memanggil $ functions [4] untuk $ elements [4], Anda bisa mendapatkan pencarian yang ideal dan hasil yang cepat.

Menyortir item

Tugas pemilahan data penting, dan PHP menawarkan beberapa fungsi untuk ini: sort (), rsort (), asort (), ksort (), ... Ascending and descending elements, dua fungsi kedua menjaga hubungan antara kunci dan nilai. Terkadang masuk akal untuk mencampur nilai array secara acak - shuffle ().

Dengan menggunakan fungsi PHP untuk pemilahan, orang tidak boleh lupa bahwa unsur-unsur tidak hanya memiliki jenis yang berbeda, tapi juga tidak begitu alami. Pertama-tama, Anda harus sangat berhati-hati dalam menyortir garis yang berisi huruf Rusia, menyortir tanggal, serta angka yang direkam dalam format yang berbeda.

Cara terbaik untuk menulis solusi ideal sendiri, setidaknya di tahap pengujian script, adalah pemilahan manual. Ini akan membantu mengantisipasi situasi yang tak terduga.

Array huruf kecil

Dengan fungsi implode () dan burst (), array dapat dengan mudah diubah menjadi string dan dikembalikan. Ini memungkinkan Anda untuk menyimpan data dalam tampilan yang kompak dan menerapkannya dalam keadaan nyaman sesuai kebutuhan.

Sebuah array dalam satu baris membuka kemungkinan baru. Misalnya, tugas mencari kata kunci dalam teks mengharuskan hasil pencarian tidak ditambahkan berulang-ulang.

$ CSrcLine = 'Daftar Teks TeksItemRun TextBox ListItem TextBox Check Box CheckBox TextBox Footnote';

$ ASrc = meledak ('', $ cSrcLine);
$ CDstLine = '';

Untuk ($ i = 0; $ i $ CFind = '['. $ ASrc [$ i]. ']';
Jika (! Is_integer (strpos ($ cDstLine, $ cFind)) {
$ CDstLine. = $ CFind;
}
}
$ ADst = meledak ('] [', $ cDstLine);

$ COne = implode (';', $ aDst);

Akibatnya, variabel $ cOne hanya akan menerima nilai dari string sumber yang terjadi di sana satu per satu: "Text; ListItemRun; TextBox; ListItem; Check; Box; CheckBox; Footnote".

Bahasa Rusia dalam kunci dan makna

Tidak disarankan untuk menggunakan apapun yang terkait dengan pengkodean nasional dalam konstruksi sintaksis. Bahasa Rusia, seperti semua bahasa lain yang karakternya melampaui az, tidak akan menimbulkan masalah di area data, namun tidak dalam sintaks kode. Kadang-kadang bahkan tugas sederhana di PHP "untuk mengeluarkan array ke printer atau ke layar" akan mengarah ke "krakozyabram", dan lebih sering hanya menghentikan skripnya.

PHP adalah bahasa yang setia dan toleran terhadap pengkodean nasional, namun ada banyak situasi ketika jumlah pekerjaan yang harus dilakukan harus dilakukan lagi hanya karena nilai kunci muncul di tempat yang tepat dan pada saat yang tepat, yang tidak dapat dikenali.

Sintaks PHP dan Lingkungan Bahasa

Ingat bahwa sintaks PHP adalah satu hal, namun sintaks dari sintaks ini "berhubungan" dengan aplikasi lain, dengan sistem operasi, dengan opsi perangkat keras. Ada banyak pilihan, tidak mungkin membayangkan semuanya.

Aturan "dalam kode hanya ada kode, dan pada input, di dalam, dan pada output ada informasi" akan membantu untuk menghindari kejutan yang tak terduga. Nilai PHP dalam array bisa "Rusia", tapi kunci yang harus benar secara sintetis tidak hanya dari posisi bahasa yang diberikan, tapi juga dari posisi lingkungan kerjanya.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 id.atomiyme.com. Theme powered by WordPress.