Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menapis Tatasusunan Berdasarkan Awalan Utama dalam PHP?

Bagaimana untuk Menapis Tatasusunan Berdasarkan Awalan Utama dalam PHP?

DDD
DDDasal
2024-10-29 21:54:29884semak imbas

How to Filter an Array Based on Key Prefix in PHP?

Menapis Elemen Tatasusunan Berdasarkan Awalan Utama

Memandangkan tatasusunan dengan kunci yang mengikut corak tertentu, anda mungkin perlu mengekalkan secara terpilih sahaja elemen yang memenuhi kriteria tertentu. Dalam kes ini, kami bertujuan untuk menapis tatasusunan, mengekalkan hanya elemen yang kuncinya bermula dengan rentetan tertentu, seperti "foo-".

Pendekatan Fungsian

Kepada mencapai ini menggunakan pendekatan berfungsi, satu pilihan ialah menggunakan fungsi array_filter() bersama-sama dengan panggilan balik tersuai. Fungsi panggil balik memeriksa setiap kekunci dan mengembalikan benar jika ia bermula dengan "foo-". Fungsi array_filter() kemudian menapis tatasusunan berdasarkan keadaan ini, mengekalkan hanya kekunci yang sepadan.

<code class="php">$array = array_filter($array, function($key) {
    return strpos($key, 'foo-') === 0;
}, ARRAY_FILTER_USE_KEY);</code>

Pendekatan Prosedur

Pendekatan prosedur melibatkan pengulangan secara manual melalui tatasusunan. Untuk setiap kunci, kami menyemak sama ada ia bermula dengan "foo-", dan jika ya, kami menambah pasangan nilai kunci pada tatasusunan baharu.

<code class="php">$only_foo = array();
foreach ($array as $key => $value) {
    if (strpos($key, 'foo-') === 0) {
        $only_foo[$key] = $value;
    }
}</code>

Pendekatan Prosedur Menggunakan Objek

Satu lagi pendekatan prosedur melibatkan penggunaan ArrayIterator untuk melelaran ke atas tatasusunan. Pendekatan ini membolehkan kami mengakses kedua-dua kunci dan nilai untuk setiap elemen. Kami menapis tatasusunan secara manual dengan menyemak sama ada setiap kekunci bermula dengan "foo-" dan menambahkan elemen padanan pada tatasusunan baharu.

<code class="php">$i = new ArrayIterator($array);
$only_foo = array();
while ($i->valid()) {
    if (strpos($i->key(), 'foo-') === 0) {
        $only_foo[$i->key()] = $i->current();
    }
    $i->next();
}</code>

Atas ialah kandungan terperinci Bagaimana untuk Menapis Tatasusunan Berdasarkan Awalan Utama dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn