Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menapis Tatasusunan Berbilang Dimensi dengan Cekap Menggunakan Padanan Rentetan Separa dalam PHP?

Bagaimana untuk Menapis Tatasusunan Berbilang Dimensi dengan Cekap Menggunakan Padanan Rentetan Separa dalam PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-29 19:09:14686semak imbas

How to Efficiently Filter a Multidimensional Array Using Partial String Matching in PHP?

Tapis Tatasusunan Berbilang Dimensi Berdasarkan Padanan Separa Nilai Carian

Menapis tatasusunan berbilang dimensi selalunya boleh menimbulkan cabaran, terutamanya apabila mencari padanan separa. Artikel ini memperkenalkan kaedah untuk menapis tatasusunan dengan cekap menggunakan penapis_tatasusunan untuk mencari elemen dengan teks yang separa sepadan dengan nilai carian yang diberikan.

Pertimbangkan contoh berikut:

$array = [
    [
        'text' => 'I like Apples',
        'id' => '102923'
    ],
    [
        'text' => 'I like Apples and Bread',
        'id' => '283923'
    ],
    [
        'text' => 'I like Apples, Bread, and Cheese',
        'id' => '3384823'
    ],
    [
        'text' => 'I like Green Eggs and Ham',
        'id' => '4473873'
    ]
];

Mari kita tapis tatasusunan ini untuk jarum "Roti":

$search_text = 'Bread';

$filtered_array = array_filter($array, function($el) use ($search_text) {
    return (strpos($el['text'], $search_text) !== false);
});

Hasilnya ialah berikut:

[
    [
        'text' => 'I like Apples and Bread',
        'id' => '283923'
    ],
    [
        'text' => 'I like Apples, Bread, and Cheese',
        'id' => '3384823'
    ]
];

Penyelesaian ini menggunakan array_filter untuk menghantar fungsi panggil balik yang menyemak nilai teks setiap elemen untuk padanan separa $search_text menggunakan strpos.

Atas ialah kandungan terperinci Bagaimana untuk Menapis Tatasusunan Berbilang Dimensi dengan Cekap Menggunakan Padanan Rentetan Separa 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