


Bagaimana untuk melaksanakan penyortiran dan menambah kedudukan dalam tatasusunan dua dimensi PHP?
Penjelasan terperinci mengenai algoritma penyortiran dan algoritma peringkat PHP
Artikel ini akan menerangkan secara terperinci bagaimana untuk menyusun tatasusunan dua dimensi PHP dan menambah maklumat ranking kepada setiap subarray. Contohnya, array dua dimensi PHP mengandungi dua bidang "nombor urutan" (Xuhao) dan "nombor undi" (Piaoshu). Kami akan menyusun mengikut bilangan undi dalam urutan menurun (bilangan undi adalah sama lebih disukai jika bilangan undi kecil), dan menambah medan "paraming" untuk setiap subarray.
Struktur data awal adalah seperti berikut:
$ data = array ( array ("xuhao" => "1", "piaoshu" => 3), array ("xuhao" => "2", "piaoshu" => 5), array ("xuhao" => "3", "piaoshu" => 5), );
Matlamat kami adalah untuk: mengatur dalam perintah menurun piaoshu
Fields. Apabila nilai piaoshu
adalah sama, susunkan dalam urutan menaik medan xuhao
, dan tambahkan medan paiming
kepada setiap subarray untuk memaparkan ranking.
Fungsi teras adalah array_multisort
, yang boleh menyusun susunan multidimensi. Kami mula -mula mengekstrak medan piaoshu
dan xuhao
, menyusunnya dengan array_multisort
, dan akhirnya menambah kedudukan ke array asal.
Pelaksanaan kod adalah seperti berikut:
$ data = array ( array ("xuhao" => "1", "piaoshu" => 3), array ("xuhao" => "2", "piaoshu" => 5), array ("xuhao" => "3", "piaoshu" => 5), ); $ piaoshu = array_column ($ data, 'piaoshu'); $ xuhao = array_column ($ data, 'xuhao'); array_multisort ($ piaoshu, sort_desc, $ xuhao, sort_asc, $ data); $ pangkat = 1; $ prev_piaoshu = -1; foreach ($ data as & $ item) { jika ($ item ['piaoshu']! = $ prev_piaoshu) { $ item ['Paiming'] = $ pangkat; $ prev_piaoshu = $ item ['piaoshu']; $ pangkat; } else { $ item ['Paiming'] = $ pangkat; } } print_r ($ data);
Kod pertama mengekstrak piaoshu
dan xuhao
, dan kemudian menggunakan fungsi array_multisort
untuk menyusun susunan undi dan urutan naik nombor. Seterusnya, kod melintasi array yang disusun, mengira kedudukan berdasarkan bilangan undi, dan menambahnya kepada setiap subarray. Jika undi adalah sama, ranking akan meningkat.
Hasil akhir:
array (3) { [0] => array (3) { ["Xuhao"] => String (1) "2" ["piaoshu"] => int (5) ["Paiming"] => int (1) } [1] => array (3) { ["Xuhao"] => String (1) "3" ["piaoshu"] => int (5) ["Paiming"] => int (2) } [2] => array (3) { ["Xuhao"] => String (1) "1" ["piaoshu"] => int (3) ["Paiming"] => int (3) } }
Kaedah ini dengan cekap melengkapkan penyortiran dan kedudukan tatasusunan dua dimensi.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan penyortiran dan menambah kedudukan dalam tatasusunan dua dimensi PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

AphpdependencyInjectionContainerisatoLthatMatagesClassDependencies, EnhancingCodeModularity, Testability, andMaintainability.itactsascentralHubforcreatingandinjectingdependencies, sheReducingTightCouplingandeaseaseaseSunittesting.

Pilih DependencyInjection (DI) Untuk aplikasi besar, servicelocator sesuai untuk projek kecil atau prototaip. 1) DI meningkatkan kesesuaian dan modulariti kod melalui suntikan pembina. 2) ServiceLocator memperoleh perkhidmatan melalui pendaftaran pusat, yang mudah tetapi boleh menyebabkan peningkatan gandingan kod.

Phpapplicationscanbeoptimizedforspeedandeficiencyby: 1) enablingopcacheinphp.ini, 2) menggunakan preparedSwithpdofordatabasequeries, 3) menggantikanloopswitharray_filterandarray_mapfordataprocessing, 4) configuringnginywinginywinyvinyvinginy

PhpeMailvalidationInvolvestHreesteps: 1) formatValidationingRegularExpressionStocheckTheemailFormat; 2) dnsvalidationtoensurethedomainhasavalidmxrecord;

Tomakephpapplicationsfaster, ikutiTheseSteps: 1) UseopcodecachinglikeopcachetostorePrecompiledscriptbytecode.2) minimizedatabasequeriesbyusingquerycachingandeficientindexing.3)

ToimprovePhpapPlicationspeed, ikutiTheSesteps: 1) EnableopCodeCachingWithApcutoreduceScriptExecutionTime.2) pelaksanaanDatabasequerycachingingPdotominimizedataBaseHits.3)

Suntikan ketergantungan (DI) dengan ketara meningkatkan kesesuaian kod PHP oleh kebergantungan transitif secara eksplisit. 1) Kelas Decoupling dan pelaksanaan khusus menjadikan ujian dan penyelenggaraan lebih fleksibel. 2) Di antara tiga jenis, pembina menyuntik kebergantungan ekspresi eksplisit untuk memastikan keadaan konsisten. 3) Gunakan bekas DI untuk menguruskan kebergantungan kompleks untuk meningkatkan kualiti kod dan kecekapan pembangunan.

DatabaseQueryoptimizationInpinvolvesseverSlegatiesToenhancePratePratePratePratePratePregiesToRperformance.1) selectOnlynessaryColumnStoReducedatatatransfer.2) UseIndexingTospeedupdatareTrieval.3) PrevancequerycachingToStoreresultSoffReFfeFfffffffffffffffffffffffffffffffffffffffffffferseprewfffffffffffersepresseprespersepresperseprespersepresperseprespersepresperseprespers


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

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa
