0Pricing
PHP Academy · บทเรียน

อาร์เรย์หลายมิติ

สร้างและเดินทางผ่านอาร์เรย์ของอาร์เรย์

อาร์เรย์หลายมิติ เป็นบทเรียน PHP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน PHP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน

อาร์เรย์หลายมิติ

อาร์เรย์หลายมิติ คืออาร์เรย์ที่แต่ละองค์ประกอบเป็นอาร์เรย์อีกทีหนึ่ง มักใช้กับข้อมูลที่มีโครงสร้าง เช่น ผลลัพธ์จากฐานข้อมูลหรือต้นไม้การตั้งค่า

การสร้างอาร์เรย์สองมิติ

สร้างและเข้าถึงอาร์เรย์สองมิติ:

<?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]; // 99

อาร์เรย์ของอาร์เรย์แบบเชื่อมโยง

ชุดผลลัพธ์จากฐานข้อมูลมักเป็นอาร์เรย์ของอาร์เรย์แบบเชื่อมโยง:

<?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);      // 3

การวนซ้ำอาร์เรย์สองมิติ

ใช้ foreach ซ้อนกันเพื่อวนซ้ำทุกแถวและคอลัมน์:

<?php
$products = [
    ['name' => 'Widget', 'price' => 9.99],
    ['name' => 'Gadget', 'price' => 24.99],
];

foreach ($products as $product) {
    echo $product['name'] . ': $' . $product['price'] . PHP_EOL;
}

การเข้าถึงคีย์ซ้อนกันอย่างปลอดภัย

ใช้ตัวดำเนินการรวมค่าเมื่อเป็น NULL เพื่อเข้าถึงคีย์ซ้อนกันที่อาจไม่มีอยู่ได้อย่างปลอดภัย:

<?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)

การเพิ่มลงในอาร์เรย์ซ้อนกัน

เพิ่มองค์ประกอบลงลึกภายในอาร์เรย์หลายมิติ:

<?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'];  // dark

array_column()

array_column() แยกคอลัมน์เดียวจากอาร์เรย์สองมิติ:

<?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']; // Bob

การเรียงลำดับอาร์เรย์สองมิติ

เรียงแถวตามค่าของช่องข้อมูลโดยใช้ 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
}

การดำเนินการแบบเวียนเกิดด้วย array_walk_recursive

ใช้ฟังก์ชันเรียกกลับกับใบทุกใบในอาร์เรย์ซ้อนกันด้วย 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 และอาร์เรย์หลายมิติ

อาร์เรย์หลายมิติของ PHP สามารถแปลงตรงไปเป็นอ็อบเจกต์และอาร์เรย์ 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']; // Alice

array_merge เทียบกับ array_replace สำหรับอาร์เรย์ซ้อนกัน

array_merge ไม่ทำงานแบบเวียนเกิด ให้ใช้ array_replace_recursive เพื่อรวมอาร์เรย์ซ้อนกันอย่างถูกต้อง:

<?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 defaults

ตรวจสอบความเข้าใจ

ฟังก์ชันใดใช้แยกคอลัมน์เดียวของค่าออกจากอาร์เรย์สองมิติ

ทบทวน: อาร์เรย์หลายมิติ

ประเด็นสำคัญ:

  • ซ้อนอาร์เรย์ได้ลึกเท่าใดก็ได้
  • ใช้ ?? เพื่อเข้าถึงคีย์ซ้อนกันที่หายไปอย่างปลอดภัย
  • array_column() แยกคอลัมน์หรือจัดทำดัชนีใหม่ด้วยคีย์ได้
  • usort() พร้อมตัวเปรียบเทียบใช้เรียงลำดับตามช่องข้อมูลใดก็ได้
  • array_walk_recursive() ใช้สำหรับการแปลงข้อมูลแบบลงลึก
  • array_replace_recursive() ใช้สำหรับการรวมข้อมูลแบบลงลึก

คำถามที่พบบ่อย

บทเรียน “อาร์เรย์หลายมิติ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “อาร์เรย์หลายมิติ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส PHP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “อาร์เรย์หลายมิติ”

สร้างและเดินทางผ่านอาร์เรย์ของอาร์เรย์ คุณปฏิบัติ PHP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน PHP Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน PHP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “อาร์เรย์หลายมิติ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน PHP Academy นี้ได้ไหม

ได้ บทเรียน PHP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. อาร์เรย์แบบดัชนีและแบบเชื่อมโยง
  2. อาร์เรย์หลายมิติ
  3. การเรียงลำดับและค้นหาอาร์เรย์
  4. ฟังก์ชันแปลงอาร์เรย์
← กลับไปที่ PHP Academy