首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 陣列定義與使用範例:索引、關聯、混合與巢狀陣列

     編輯:PHP 相關知識

四種常見陣列型態

<?php
// 1. 索引陣列 (數字鍵 0 起始)
$fruits = ['apple', 'orange', 'banana'];
echo $fruits[0]; // apple
echo $fruits[1]; // orange

// 2. 數值陣列
$numbers = [1, 2, 3, 4, 5];

// 3. 混合型別陣列
$mixed = [1, 'example', 'hello', 2.5];

// 4. 關聯陣列 (字串鍵)
$ex = ['a' => '水果', 'b' => '汽車'];
echo $ex['a']; // 水果
echo $ex['b']; // 汽車

// 5. 巢狀關聯陣列
$complex = [
    'user' => [
        'id' => 1,
        'name' => 'John',
        'tags' => ['vip', 'active']
    ],
    'settings' => [
        'theme' => 'dark',
        'lang' => 'zh-TW'
    ]
];
echo $complex['user']['name'];        // John
echo $complex['user']['tags'][0];     // vip
?>

陣列建構技巧

<?php
// 範圍建立
$range = range(1, 10);        // [1..10]
$letters = range('a', 'f');   // ['a'..'f']

// 固定值填充
$filled = array_fill(0, 5, 'default'); // ['default', 'default', ...]

// 鍵值互換
$flipped = array_flip(['a' => 1, 'b' => 2]); // [1 => 'a', 2 => 'b']

// 合併 (字串鍵後者覆蓋)
$merged = array_merge(['a' => 1], ['a' => 2, 'b' => 3]); // ['a' => 2, 'b' => 3]

// 聯集 (鍵保留第一個)
$union = ['a' => 1] + ['a' => 2, 'b' => 3]; // ['a' => 1, 'b' => 3]
?>

遍歷與操作

<?php
$data = ['a' => 1, 'b' => 2, 'c' => 3];

// 基礎遍歷
foreach ($data as $value) {
    echo $value . "\n";
}

// 鍵值遍歷
foreach ($data as $key => $value) {
    echo "$key => $value\n";
}

// 參考修改
foreach ($data as &$value) {
    $value *= 10;
}
unset($value); // 重要:解除參考

// 陣列函數鏈
$result = array_map(fn($v) => $v * 2, $data); // [2, 4, 6]
$filtered = array_filter($data, fn($v) => $v > 1); // ['b' => 2, 'c' => 3]
$sum = array_sum($data); // 6
?>

實務應用:表單資料處理

<?php
// $_POST 範例
$formData = [
    'username' => 'john_doe',
    'email' => 'john@example.com',
    'interests' => ['php', 'javascript', 'mysql'], // checkbox 陣列
    'profile' => [
        'bio' => 'Developer',
        'avatar' => 'avatar.png'
    ]
];

// 驗證必填
$required = ['username', 'email'];
$missing = array_diff($required, array_keys($formData));
if ($missing) {
    throw new Exception('缺少欄位: ' . implode(', ', $missing));
}

// 過濾允許欄位
$allowed = ['username', 'email', 'interests'];
$clean = array_intersect_key($formData, array_flip($allowed));

// 陣列值轉字串存儲
$clean['interests'] = json_encode($clean['interests']);
// 或 implode(',', $clean['interests'])
?>

陣列是 PHP 最核心的資料結構,靈活運用各種建構與操作函數,能大幅簡化資料處理邏輯。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved