Tatasusunan Berbilang Dimensi
Bina dan navigasi tatasusunan yang mengandungi tatasusunan.
Tatasusunan Berbilang Dimensi ialah pelajaran PHP Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran PHP Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.
Tatasusunan Berbilang Dimensi
Tatasusunan berbilang dimensi ialah tatasusunan yang setiap unsurnya sendiri merupakan tatasusunan. Tatasusunan ini biasa digunakan untuk data berstruktur seperti hasil pangkalan data atau pepohon konfigurasi.
Penciptaan Tatasusunan 2D
Cipta dan akses tatasusunan dua dimensi:
<?php
$matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
];
echo $matrix[1][2]; // 6 (row 1, col 2)
$matrix[0][0] = 99;
echo $matrix[0][0]; // 99Tatasusunan Tatasusunan Bersekutu
Set hasil pangkalan data selalunya terdiri daripada tatasusunan bersekutu:
<?php
$users = [
['id' => 1, 'name' => 'Alice', 'role' => 'admin'],
['id' => 2, 'name' => 'Bob', 'role' => 'user'],
['id' => 3, 'name' => 'Carol', 'role' => 'user'],
];
echo $users[0]['name']; // Alice
echo count($users); // 3Mengulangi Tatasusunan 2D
Gunakan foreach bersarang untuk mengulangi semua baris dan lajur:
<?php
$products = [
['name' => 'Widget', 'price' => 9.99],
['name' => 'Gadget', 'price' => 24.99],
];
foreach ($products as $product) {
echo $product['name'] . ': $' . $product['price'] . PHP_EOL;
}Mengakses Kunci Bersarang dengan Selamat
Gunakan operator penggabungan NULL untuk mengakses kunci bersarang yang mungkin tidak wujud dengan selamat:
<?php
$config = [
'database' => ['host' => 'localhost', 'port' => 3306],
'cache' => ['driver' => 'redis'],
];
$port = $config['database']['port'] ?? 3306;
$password = $config['database']['password'] ?? '';
echo $port; // 3306
echo $password; // (empty)Menambah pada Tatasusunan Bersarang
Tambahkan unsur jauh di dalam tatasusunan berbilang dimensi:
<?php
$app = [];
$app['settings']['theme'] = 'dark';
$app['settings']['lang'] = 'en';
$app['users'][] = ['name' => 'Alice'];
$app['users'][] = ['name' => 'Bob'];
echo count($app['users']); // 2
echo $app['settings']['theme']; // darkarray_column()
array_column() mengekstrak satu lajur daripada tatasusunan 2D:
<?php
$users = [
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
['id' => 3, 'name' => 'Carol'],
];
$names = array_column($users, 'name');
print_r($names); // ['Alice', 'Bob', 'Carol']
// Re-index by id
$byId = array_column($users, null, 'id');
echo $byId[2]['name']; // BobMengisih Tatasusunan 2D
Isih baris mengikut nilai medan menggunakan usort():
<?php
$products = [
['name' => 'C Item', 'price' => 30],
['name' => 'A Item', 'price' => 10],
['name' => 'B Item', 'price' => 20],
];
usort($products, fn($a, $b) => $a['price'] <=> $b['price']);
foreach ($products as $p) {
echo $p['name'] . PHP_EOL; // A Item, B Item, C Item
}Operasi Rekursif dengan array_walk_recursive
Laksanakan fungsi panggil balik pada setiap daun dalam tatasusunan bersarang dengan array_walk_recursive():
<?php
$data = ['a' => 'hello', 'b' => ['c' => 'world', 'd' => 'php']];
array_walk_recursive($data, function(&$val) {
$val = strtoupper($val);
});
print_r($data);
// ['a'=>'HELLO', 'b'=>['c'=>'WORLD','d'=>'PHP']]JSON dan Tatasusunan Berbilang Dimensi
Tatasusunan berbilang dimensi PHP dipetakan terus kepada objek dan tatasusunan JSON:
<?php
$data = [
'user' => ['id' => 1, 'name' => 'Alice'],
'scores' => [95, 87, 92],
'active' => true,
];
$json = json_encode($data, JSON_PRETTY_PRINT);
echo $json;
$decoded = json_decode($json, true); // true = assoc array
echo $decoded['user']['name']; // Alicearray_merge berbanding array_replace untuk Tatasusunan Bersarang
array_merge tidak bersifat rekursif; gunakan array_replace_recursive untuk menggabungkan tatasusunan bersarang dengan betul:
<?php
$defaults = ['db' => ['host' => 'localhost', 'port' => 3306]];
$custom = ['db' => ['host' => 'production.server.com']];
$config = array_replace_recursive($defaults, $custom);
echo $config['db']['host']; // production.server.com
echo $config['db']['port']; // 3306 — preserved from defaultsSemakan Pantas
Fungsi manakah yang mengekstrak satu lajur nilai daripada tatasusunan 2D?
Ringkasan: Tatasusunan Berbilang Dimensi
Perkara utama:
- Sarangkan tatasusunan sedalam mana-mana tahap
- Gunakan
??untuk mengakses kunci bersarang yang tiada dengan selamat array_column()mengekstrak lajur atau mengindeks semula berdasarkan kunciusort()dengan pembanding mengisih berdasarkan mana-mana medanarray_walk_recursive()untuk transformasi mendalamarray_replace_recursive()untuk penggabungan mendalam
Pelajari PHP dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 49
- Pelajaran
- 195
Soalan Lazim
Adakah pelajaran “Tatasusunan Berbilang Dimensi” percuma?
Ya — teks penuh “Tatasusunan Berbilang Dimensi” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus PHP Academy, tingkat taraf kepada CoddyKit PRO. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Tatasusunan Berbilang Dimensi”?
Bina dan navigasi tatasusunan yang mengandungi tatasusunan. Anda berlatih PHP Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan PHP Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran PHP Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Tatasusunan Berbilang Dimensi” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran PHP Academy ini?
Ya. Setiap pelajaran PHP Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Tatasusunan Berindeks dan Bersekutu
- Tatasusunan Berbilang Dimensi
- Mengisih dan Mencari Tatasusunan
- Fungsi Transformasi Tatasusunan