二分法查找数组是否包含某一元素_PHP教程
二分法查找数组是否包含某一元素,兼容正反序,代码实现:
<span 1</span> <?<span php </span><span 2</span> <span 3</span> <span $searchValue</span> = (int)<span $_GET</span>['key'<span ]; </span><span 4</span> <span 5</span> <span function</span> search(<span array</span> <span $array</span>, <span $value</span><span ) </span><span 6</span> <span { </span><span 7</span> <span $max</span> = <span count</span>(<span $array</span>)-1<span ; </span><span 8</span> <span $min</span> = 0<span ; </span><span 9</span> <span $isAscSort</span> = <span $array</span>[<span $min</span>] < <span $array</span>[<span $max</span><span ]; </span><span 10</span> <span 11</span> <span while</span> (<span TRUE</span><span ) { </span><span 12</span> <span $sum</span> = <span $min</span>+<span $max</span><span ; </span><span 13</span> <span $midKey</span> = (int)(<span $sum</span>%2 == 1 ? <span ceil</span>(<span $sum</span>/2) : <span $sum</span>/2<span ); </span><span 14</span> <span 15</span> <span if</span> (<span $max</span> < <span $min</span><span ) { </span><span 16</span> <span return</span> -1<span ; </span><span 17</span> } <span else</span> <span if</span> (<span $value</span> == <span $array</span>[<span $midKey</span><span ]) { </span><span 18</span> <span return</span> 1<span ; </span><span 19</span> } <span else</span> <span if</span> (<span $value</span> > <span $array</span>[<span $midKey</span><span ]) { </span><span 20</span> <span $isAscSort</span> ? <span $min</span> = <span $midKey</span>+1 : <span $max</span> = <span $midKey</span>-1<span ; </span><span 21</span> } <span else</span> <span if</span> (<span $value</span> < <span $array</span>[<span $midKey</span><span ]) { </span><span 22</span> <span $isAscSort</span> ? <span $max</span> = <span $midKey</span>-1 : <span $min</span> = <span $midKey</span>+1<span ; </span><span 23</span> <span } </span><span 24</span> <span } </span><span 25</span> <span } </span><span 26</span> <span 27</span> <span $array</span> = <span array</span><span ( </span><span 28</span> '4', '5', '7', '8', '9', '10', '11', '12' <span 29</span> <span ); </span><span 30</span> <span //</span><span 正序</span> <span 31</span> <span echo</span> search(<span $array</span>, <span $searchValue</span><span ); </span><span 32</span> <span 33</span> <span //</span><span 逆序</span> <span 34</span> <span rsort</span>(<span $array</span><span ); </span><span 35</span> <span echo</span> search(<span $array</span>, <span $searchValue</span>);
这个没考虑非顺序键的数组,主要是方法,如果需要大家可以自己扩展下。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Kaedah menggunakan gelung foreach untuk mengalih keluar elemen pendua daripada tatasusunan PHP adalah seperti berikut: melintasi tatasusunan, dan jika elemen itu sudah wujud dan kedudukan semasa bukan kejadian pertama, padamkannya. Contohnya, jika terdapat rekod pendua dalam hasil pertanyaan pangkalan data, anda boleh menggunakan kaedah ini untuk mengalih keluarnya dan mendapatkan hasil tanpa rekod pendua.

Kaedah untuk tatasusunan penyalinan dalam dalam PHP termasuk: Pengekodan dan penyahkodan JSON menggunakan json_decode dan json_encode. Gunakan peta_tatasusunan dan klon untuk membuat salinan kunci dan nilai yang mendalam. Gunakan bersiri dan menyahsiri untuk bersiri dan menyahsiri.

Perbandingan prestasi kaedah membalik nilai kunci tatasusunan PHP menunjukkan bahawa fungsi array_flip() berprestasi lebih baik daripada gelung for dalam tatasusunan besar (lebih daripada 1 juta elemen) dan mengambil masa yang lebih singkat. Kaedah gelung untuk membalikkan nilai kunci secara manual mengambil masa yang agak lama.

Sejak pelancaran ChatGLM-6B pada 14 Mac 2023, model siri GLM telah mendapat perhatian dan pengiktirafan yang meluas. Terutama selepas ChatGLM3-6B menjadi sumber terbuka, pembangun penuh dengan jangkaan untuk model generasi keempat yang dilancarkan oleh Zhipu AI. Jangkaan ini akhirnya telah berpuas hati sepenuhnya dengan keluaran GLM-4-9B. Kelahiran GLM-4-9B Untuk memberikan model kecil (10B dan ke bawah) keupayaan yang lebih berkuasa, pasukan teknikal GLM melancarkan model sumber terbuka siri GLM generasi keempat baharu ini: GLM-4-9B selepas hampir setengah tahun penerokaan. Model ini sangat memampatkan saiz model sambil memastikan ketepatan, dan mempunyai kelajuan inferens yang lebih pantas dan kecekapan yang lebih tinggi. Penerokaan pasukan teknikal GLM tidak

Fungsi array_group_by PHP boleh mengumpulkan elemen dalam tatasusunan berdasarkan kekunci atau fungsi penutupan, mengembalikan tatasusunan bersekutu dengan kuncinya ialah nama kumpulan dan nilainya ialah tatasusunan elemen kepunyaan kumpulan.

Amalan terbaik untuk melaksanakan salinan dalam tatasusunan dalam PHP ialah menggunakan json_decode(json_encode($arr)) untuk menukar tatasusunan kepada rentetan JSON dan kemudian menukarnya kembali kepada tatasusunan. Gunakan unserialize(serialize($arr)) untuk mensiri tatasusunan kepada rentetan dan kemudian menyahsirikannya kepada tatasusunan baharu. Gunakan RecursiveIteratorIterator untuk melintasi tatasusunan berbilang dimensi secara rekursif.

Model besar mengubah segala-galanya, dan akhirnya sampai kepada ketua editor ini. Ia juga merupakan Agen yang dicipta hanya dalam satu ayat. Seperti ini, berikan dia artikel, dan dalam masa kurang dari 1 saat, cadangan tajuk baru akan keluar. Berbanding dengan saya, kecekapan ini hanya boleh dikatakan sepantas kilat dan lambat seperti kemalasan... Apa yang lebih luar biasa ialah mencipta Ejen ini hanya mengambil masa beberapa minit sahaja. Prompt adalah milik Mak Cik Jiang: Dan jika anda juga ingin mengalami perasaan subversif ini, kini, berdasarkan platform pintar Wenxin baharu yang dilancarkan oleh Baidu, semua orang boleh mencipta pembantu pintar mereka sendiri secara percuma. Anda boleh menggunakan enjin carian, platform perkakasan pintar, pengecaman pertuturan, peta, kereta dan saluran ekologi mudah alih Baidu yang lain untuk membolehkan lebih ramai orang menggunakan kreativiti anda! Robin Li sendiri

Pengisihan tatasusunan berbilang dimensi boleh dibahagikan kepada pengisihan lajur tunggal dan pengisihan bersarang. Pengisihan lajur tunggal boleh menggunakan fungsi array_multisort() untuk mengisih mengikut lajur pengisihan bersarang memerlukan fungsi rekursif untuk merentasi tatasusunan dan mengisihnya. Kes praktikal termasuk pengisihan mengikut nama produk dan pengisihan kompaun mengikut volum jualan dan harga.
