`explode()` 本身返回一维数组,但因误用数组追加语法 `$myarray[] = ...`,导致结果被强制包裹进新数组,形成二维结构;只需直接赋值即可获得预期的一维结果。
PHP 中的 explode() 是一个字符串分割函数,其设计目标是直接返回一个包含分割后子串的一维数组。例如:
$mystring = "48-72";
$myarray = explode("-", $mystring);
var_dump($myarray);输出为:
array(2) {
[0] => string(2) "48"
[1] => string(2) "72"
}而原始代码中使用了 $myarray[] = explode(...),这等价于“向 $myarray 追加一个新元素”,而该元素恰好是 explode() 返回的整个数组——因此 $myarray 成为一个只含一个元素(即该一维数组)的外层数组,最终形成 数组中的数组(二维结构)。
✅ 正确做法:直接赋值,避免隐式数组扩展
❌ 错误写法:$myarray[] = explode(...)(适用于需多次追加不同 explode 结果的场景,但非单次使用)
⚠️ 注意事项:
立即学习“PHP免费学习笔记(深入)”;
$myarray[0] 取左值),必须确保 $myarray 是一维数组,否则将引发 Undefined offset 或逻辑错误; ? 小技巧:若不确定结构,可先用 print_r($myarray) 或 var_dump($myarray) 检查层级,再决定访问方式。保持数据结构清晰,是写出健壮 PHP 代码的第一步。