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

PHP 入門教學:一維陣列引用、核心函式與實戰應用總整理

     編輯:PHP 綜合知識

本文整合陣列引用語法、六大核心函式、遍歷模式、刪除機制與三大實戰案例 (成績統計、乘法表、表單合併),為 PHP 陣列操作的完整實戰手冊。

基本引用語法

$value = $arr[$key];  // 讀取
$arr[$key] = $value;  // 寫入/新增/修改
// 鍵不存在讀取 → Notice: Undefined array key (PHP 8+) / Warning (PHP 7)
// 建議先檢查:isset($arr[$key]) / array_key_exists($key, $arr)

六大核心函式速查表

函式功能語法關鍵備註
count元素個數count($arr)遞迴計數 COUNT_RECURSIVE
is_array型別檢查is_array($var)嚴格判斷,物件回傳 false
print_r結構輸出 (可讀)print_r($arr [, true])第二參數 true 回傳字串而非輸出
var_dump完整型別/長度輸出var_dump($arr)除錯首選,含索引型別
explode字串分割成陣列explode(分隔字串, 字串 [, limit])分隔字串不可為空字串
implode陣列合併成字串implode(分隔字串, $arr)別名 join,順序固定
sort值排序 (重建索引)sort($arr [, flags])SORT_NUMERIC, SORT_STRING, SORT_NATURAL

實戰案例 1:表單成績統計 (explode + foreach)

test.php (輸入頁)

<html><head><meta charset="GBK"></head><body>
<h1>請輸入五個小孩成績,用空格隔開</h1>
<form action="result2.php" method="post">
<input type="text" name="grade" />
<input type="submit" value="開始統計" />
</form></body></html>

result2.php (處理頁)

<?php
$grades = $_REQUEST['grade'];
$grade = explode(' ', $grades);
$allgrades = 0;
foreach ($grade as $k => $v) { $allgrades += $v; }
echo '平均時間:' . ($allgrades / count($grade));
?>

合併單檔版 (關閉 Notice、保留輸入)

<html><head><meta charset="GBK"></head><body>
<h1>請輸入五個小孩成績,用空格隔開</h1>
<form action="" method="post">
<input type="text" name="grade" value="<?php echo htmlspecialchars($grades ?? '') ?>" />
<input type="submit" value="開始統計" />
</form>
<?php
error_reporting(E_ALL ^ E_NOTICE);
$grades = $_REQUEST['grade'] ?? '';
$gr = explode(' ', $grades);
$allgrades = 0;
foreach ($gr as $k => $v) { $allgrades += $v; }
$a = count($gr) ? $allgrades / count($gr) : 0;
echo '平均時間:' . round($a, 2);
?>
</body></html>

實戰案例 2:乘法口訣表 (巢狀迴圈 + 陣列輸出)

<?php
for ($i = 1; $i < 10; $i++) {
    for ($k = 1; $k <= $i; $k++) {
        echo "$i*$k=" . ($i * $k) . "&nbsp;";
    }
    echo "<br />";
}
?>

乘法口訣表輸出畫面

實戰案例 3:陣列附加運算子 + (聯合不覆蓋)

<?php
$a = ['a' => 'apple', 'b' => 'banana'];
$b = ['a' => 'pear', 'b' => 'strawberry', 'c' => 'cherry'];
$c = $a + $b;  // 右邊鍵名在左邊已存在者「不覆蓋」
var_dump($c);
/* 輸出:
['a'=>'apple', 'b'=>'banana', 'c'=>'cherry']  // a,b 保留左邊值
*/
$c = $b + $a;  // 順序互換結果不同
var_dump($c);  // ['a'=>'pear', 'b'=>'strawberry', 'c'=>'cherry']
?>
  • + 運算子:聯集 (左優先),右側鍵名若在左側存在則忽略。
  • array_merge:合併 (後覆蓋前),數字索引重排,字串鍵後者覆蓋。

unset 刪除元素:索引保留特性

<?php
$arr[0] = 123; $arr[1] = 456; $arr[2] = 'hello';
echo '刪除前: ' . $arr[1];  // 456
unset($arr[1]);
echo '刪除後: ' . $arr[1];  // Notice: Undefined array key 1
print_r($arr);  // [0=>123, 2=>hello] 索引 2 不變
?>

若需連續索引:$arr = array_values($arr);

關閉 Notice 級別錯誤提示

<?php
error_reporting(E_ALL ^ E_NOTICE);  // 生產環境建議:E_ALL & ~E_DEPRECATED & ~E_STRICT
// 或 php.ini: error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT
?>

陣列操作最佳實踐清單

  1. 讀取前 isset/array_key_exists 檢查鍵存在。
  2. 遍歷 優先 foreach,需索引用 as $k => $v。
  3. 排序選擇:sort (值排序重索引)、asort (值排序保鍵)、ksort (鍵排序)、usort (自訂比較)。
  4. 合併選擇:+ (聯集左優)、array_merge (合併後覆蓋)、array_replace (遞迴替換)。
  5. 大量資料:Generator (yield) 避免記憶體爆炸。
  6. 嚴格模式:declare(strict_types=1) 搭配型別宣告捕獲傳參錯誤。

掌握此手冊,PHP 陣列操作將不再有盲區。

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