Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menanyakan nilai tatasusunan berbilang dimensi dalam php

Bagaimana untuk menanyakan nilai tatasusunan berbilang dimensi dalam php

PHPz
PHPzasal
2023-04-23 16:46:591056semak imbas

Dalam proses pembangunan PHP, pemprosesan tatasusunan berbilang dimensi boleh meningkatkan fleksibiliti dan kebolehgunaan semula kod dengan banyak, kerana tatasusunan boleh menyimpan sejumlah besar data. Walau bagaimanapun, mencari dan memanipulasi data dalam tatasusunan berbilang dimensi boleh mengelirukan dan membingungkan. Oleh itu, artikel ini akan memperkenalkan beberapa kaedah biasa untuk menanyakan nilai tatasusunan berbilang dimensi.

1. Gunakan gelung

Cara paling mudah untuk mencari nilai dalam tatasusunan berbilang dimensi adalah dengan menggelung tatasusunan dan mencari nilai yang kita inginkan dengan merentasi tatasusunan.

Contoh: Katakan kita mempunyai tatasusunan berbilang dimensi tentang buah-buahan, yang mengandungi nama, warna dan harga buah-buahan. Kami ingin menanyakan nama semua buah yang warnanya 'merah'.

$fruits = array(
    'apple' => array(
        'color' => 'red',
        'price' => 1.00
    ),
    'banana' => array(
        'color' => 'yellow',
        'price' => 0.50
    ),
    'strawberry' => array(
        'color' => 'red',
        'price' => 2.00
    )
);

foreach ($fruits as $key => $value) {
    if ($value['color'] == 'red') {
        echo $key . '<br>'; // 输出:apple, strawberry
    }
}

Dalam contoh di atas, kami mengulangi keseluruhan tatasusunan berbilang dimensi dan menyemak sama ada warna dalam setiap subtatasusunan ialah 'merah'. Jika ya, keluarkan nama buah.

2. Gunakan fungsi array_map

Fungsi array_map ialah salah satu fungsi terbina dalam bahasa PHP Ia boleh menggunakan fungsi panggil balik pada setiap elemen dalam tatasusunan dan mengembalikan yang diproses data.

Contoh: Katakan kita ingin menanyakan nama dan alamat e-mel semua pengguna dan menyimpannya dalam tatasusunan baharu.

$users = array(
    array(
        'name' => 'Tom',
        'email' => 'tom@example.com'
    ),
    array(
        'name' => 'Alice',
        'email' => 'alice@example.com'
    ),
    array(
        'name' => 'John',
        'email' => 'john@example.com'
    )
);

$result = array_map(function($item) {
    return array(
        'name' => $item['name'],
        'email' => $item['email']
    );
}, $users);

print_r($result);

Dalam contoh di atas, kami menggunakan fungsi array_map untuk menyimpan nama dan alamat e-mel setiap pengguna dalam tatasusunan baharu dan mengembalikannya.

3. Gunakan fungsi array_column

Fungsi array_column membolehkan anda mendapatkan lajur data dalam tatasusunan berbilang dimensi dan mengembalikan tatasusunan baharu yang terdiri daripada lajur data.

Contoh: Katakan kita mempunyai susunan pelbagai dimensi senarai pelajar yang mengandungi nama, umur dan jantina mereka. Kami ingin menanyakan nama semua pelajar.

$students = array(
    array(
        'name' => 'Tom',
        'age' => 30,
        'gender' => 'male'
    ),
    array(
        'name' => 'Alice',
        'age' => 22,
        'gender' => 'female'
    ),
    array(
        'name' => 'John',
        'age' => 25,
        'gender' => 'male'
    )
);

$result = array_column($students, 'name');

print_r($result);

Dalam contoh di atas, kami menggunakan fungsi array_column untuk mendapatkan semua nama dalam senarai pelajar dan mengembalikan tatasusunan baharu mereka.

Kesimpulan

Di atas ialah beberapa kaedah biasa untuk menyoal dan mengendalikan tatasusunan berbilang dimensi Kaedah ini menyediakan pelbagai pilihan untuk mendapatkan dan memproses data dalam tatasusunan. Kaedah yang hendak dipilih bergantung pada senario aplikasi tertentu dan gaya peribadi pengaturcara.

Atas ialah kandungan terperinci Bagaimana untuk menanyakan nilai tatasusunan berbilang dimensi 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