You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中访问associativeArray[a][2][0]返回错误值的问题咨询

PHP数组访问STD代码返回错误值的问题分析与解决

嘿,这个问题我太熟悉了!你遇到的根本原因是PHP对前导0数字的解析规则——你写的0621被当作八进制数处理了,而不是你期望的十进制STD代码。

问题拆解

在PHP里,数字字面量如果以0开头,会自动被解析为八进制数。八进制的0621转换为十进制是401,这就是为什么你用$associativeArray[0][2][0]拿到的是错误值;而电话号码22465874没有前导0,所以正常解析为十进制数,能正确获取。

修复方案

把STD代码用双引号或单引号包裹成字符串,这样PHP就不会把它当作数值解析,而是保留原始的字符序列。修正后的代码如下:

<?php 
error_reporting(0); 
echo "<br>"; 
$associativeArray = array( 
    array(1, "Rahul", array("0621", 22465874)), 
    array(2, "Ayushi", array("0261", 2265471)), 
    array(3, "Ritik", array("2314", 4789556)) 
); 
echo $associativeArray[0][2][0], "<br>"; // 现在输出正确的"0621"
echo $associativeArray[0][2][1]; // 正常输出22465874
?>

额外建议

如果后续需要对STD代码做数值运算,可以在使用时通过intval($stdCode, 10)将字符串转为十进制整数;但如果STD代码需要保留前导0(比如作为固定标识),保持字符串形式是最稳妥的做法。

内容的提问来源于stack exchange,提问作者Rahul Ranjan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:17:36