Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php query pelbagai dimensi

php query pelbagai dimensi

WBOY
WBOYasal
2023-05-28 15:31:41954semak imbas

PHP ialah bahasa pengaturcaraan berkuasa yang sering digunakan untuk membangunkan aplikasi web. Apabila membangunkan aplikasi web melalui PHP, kita selalunya perlu berurusan dengan tatasusunan berbilang dimensi. Tatasusunan multidimensi ialah tatasusunan yang mengandungi tatasusunan lain. Tatasusunan ini boleh disarangkan berbilang peringkat ke dalam struktur yang kompleks. Cara untuk menanyakan tatasusunan berbilang dimensi tersebut telah menjadi masalah yang dihadapi oleh pembangun.

PHP menyediakan beberapa fungsi terbina dalam untuk mengendalikan tatasusunan berbilang dimensi, termasuk array_search(), array_key_exists(), in_array(), array_walk_recursive(), dsb. Artikel ini akan memperkenalkan beberapa fungsi ini untuk membantu anda menanyakan tatasusunan berbilang dimensi dengan mudah.

1. Fungsi array_search()

Fungsi array_search() digunakan untuk mencari elemen yang ditentukan dalam tatasusunan dan mengembalikan nama kuncinya. Jika terdapat berbilang padanan dalam tatasusunan, nama kunci padanan pertama dikembalikan. Jika tiada padanan, pulangkan palsu.

Berikut ialah sintaks fungsi array_search():

array_search(search_value, array, strict)

di mana search_value ialah nilai yang boleh ditemui dan array ialah array untuk mencari , ketat ialah nilai Boolean pilihan yang digunakan untuk menentukan sama ada padanan jenis diperlukan semasa mencari. Jika ditetapkan kepada benar, nama kunci elemen dengan jenis yang sama dan nilai yang sama dengan nilai_carian dikembalikan Jika ditetapkan kepada palsu atau tidak ditetapkan, hanya nama kunci elemen dengan nilai yang sama dikembalikan.

Berikut ialah kod sampel:

$students = [
    ['name' => '张三', 'age' => 20, 'gender' => '男'],
    ['name' => '李四', 'age' => 18, 'gender' => '女'],
    ['name' => '王五', 'age' => 22, 'gender' => '男']
];

// 查询名为'李四'的学生的索引
$index = array_search('李四', array_column($students, 'name'));
echo "李四的索引是:" . $index; 

Dalam contoh ini, kami menggunakan fungsi array_search() dan array_column(). Fungsi array_column() digunakan untuk mengembalikan tatasusunan baharu yang mengandungi nilai lajur yang ditentukan. Dalam contoh ini, kami mengembalikan lajur nama semua pelajar, kemudian menanyakan indeks elemen bernama '李思' dalam tatasusunan ini dan mencetaknya.

2. fungsi array_key_exists()

array_key_exists() fungsi digunakan untuk menentukan sama ada nama kunci yang ditentukan wujud dalam tatasusunan. Mengembalikan benar jika ada, palsu sebaliknya. Sintaks fungsi ini adalah seperti berikut:

array_key_exists(key, array)

di mana kunci ialah nama kunci untuk ditemui dan tatasusunan ialah tatasusunan yang hendak dicari.

Berikut ialah kod sampel:

$students = [
    '张三' => ['age' => 20, 'gender' => '男'],
    '李四' => ['age' => 18, 'gender' => '女'],
    '王五' => ['age' => 22, 'gender' => '男']
];

// 判断'李四'是否存在
if (array_key_exists('李四', $students)) {
    echo "存在名为'李四'的学生";
} else {
    echo "不存在名为'李四'的学生";
}

Dalam contoh ini, kami menggunakan fungsi array_key_exists() untuk menentukan sama ada nama kunci wujud dalam tatasusunan. Jika nama kunci yang dimasukkan '李思' wujud dalam tatasusunan, ia akan mengembalikan "Ada pelajar bernama '李思'", jika tidak ia akan mengembalikan "Tiada pelajar bernama '李思'".

3. Fungsi in_array()

Fungsi in_array() digunakan untuk menentukan sama ada nilai yang ditentukan wujud dalam tatasusunan. Mengembalikan benar jika ada, palsu sebaliknya. Sintaks fungsi ini adalah seperti berikut:

in_array(needle, haystack, strict)

di mana jarum adalah nilai untuk ditemui, haystack ialah tatasusunan untuk mencari, dan ketat adalah pilihan Nilai Boolean , digunakan untuk menentukan sama ada padanan jenis diperlukan semasa mencari. Jika ditetapkan kepada benar, elemen dengan jenis yang sama dan nilai yang sama seperti jarum dikembalikan. Jika ditetapkan kepada palsu atau tidak ditetapkan, hanya elemen dengan nilai yang sama dikembalikan.

Berikut ialah kod sampel:

$fruits = ['apple', 'banana', 'orange'];

// 判断是否存在'banana'
if (in_array('banana', $fruits)) {
    echo "存在'banana'这个水果";
} else {
    echo "不存在'banana'这个水果";
}

Dalam contoh ini, kami menggunakan fungsi in_array() untuk menentukan sama ada nilai wujud dalam tatasusunan. Jika nilai input 'pisang' wujud dalam tatasusunan, ia mengembalikan "buah 'pisang' wujud", jika tidak ia mengembalikan "buah 'pisang' tidak wujud".

4. Fungsi array_walk_recursive()

fungsi array_walk_recursive() digunakan untuk melintasi tatasusunan berbilang dimensi dan melaksanakan fungsi panggil balik yang ditentukan. Sintaks fungsi ini adalah seperti berikut:

array_walk_recursive(array, callback, userdata)

di mana tatasusunan ialah tatasusunan berbilang dimensi untuk dilalui secara rekursif, panggil balik ialah fungsi panggil balik yang akan dilaksanakan , dan data pengguna dihantar ke panggilan balik Data pilihan untuk fungsi tersebut.

Berikut ialah kod sampel:

$students = [
    ['name' => '张三', 'grades' => ['math' => 80, 'english' => 85]],
    ['name' => '李四', 'grades' => ['math' => 90, 'english' => 95]],
    ['name' => '王五', 'grades' => ['math' => 85, 'english' => 80]]
];

// 计算每个学生的平均分
function calculate_average(&$value, $key, $userdata) {
    $sum = array_sum($value['grades']);
    $value['average'] = round($sum / count($value['grades']), 2);
}

array_walk_recursive($students, 'calculate_average');

print_r($students); 

Dalam contoh ini, kami menggunakan fungsi array_walk_recursive() untuk melintasi tatasusunan dua dimensi yang mengandungi berbilang nama dan gred pelajar, dan mengira purata setiap pelajar skor. Dalam fungsi panggil balik calculate_average(), kami menggunakan fungsi array_sum() untuk mengira jumlah markah semua subjek dan membahagikannya dengan bilangan subjek untuk mengira skor purata. Akhir sekali, kami menambah hasil pengiraan pada tatasusunan setiap pelajar dan mencetak keseluruhan tatasusunan menggunakan fungsi print_r().

Ringkasan

Menyoal tatasusunan berbilang dimensi ialah keperluan biasa dalam pembangunan PHP. Artikel ini memperkenalkan beberapa fungsi terbina dalam, termasuk array_search(), array_key_exists(), in_array(), array_walk_recursive(), dsb. Fungsi ini membantu kami membuat pertanyaan dan memproses tatasusunan berbilang dimensi dengan mudah. Saya harap pembaca mendapat sesuatu daripada ini.

Atas ialah kandungan terperinci php query pelbagai dimensi. 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