如何分割字符串生成新数组对象?PHP代码异常排查
问题分析与修正
咱们一步一步拆解你代码里的问题哈:
1. 分隔符用错了核心逻辑
你执行$parts = explode('.', $myId);的时候,用的分隔符是点号.,但你的$myId处理后是"242, 428",里面根本没有点号!所以explode之后得到的数组只会包含一个元素——就是整个字符串"242, 428",完全没达到拆分ID的效果。
2. 多余的数组嵌套操作
你接着写了$parts = array($parts);,这会把原本的一维数组再包一层,直接变成二维数组,这显然不是你想要的拆分单个ID的结果。
3. 输出对象的笔误
最后你说执行print_r($myId);得到数组结果,但实际上$myId自始至终都是字符串类型,你应该输出的是$parts才对,估计是手滑写错啦。
修正后的代码
如果你的目标是把242,428拆分成包含两个数字的数组,直接这么写就行:
$myId = $_POST['varPostId']; // 原始值为"242,428" // 如果你需要逗号后加空格的格式,保留这步;不需要的话可以直接跳过 $myId = str_replace(',', ', ', $myId); // 用对应格式的分隔符拆分(这里是带空格的逗号) $parts = explode(', ', $myId); // 不需要再嵌套数组,直接输出数组 print_r($parts);
执行后会得到你预期的拆分结果:
Array ( [0] => 242 [1] => 428 )
如果不需要逗号后加空格的格式,直接用原始字符串拆分更简洁:
$myId = $_POST['varPostId']; $parts = explode(',', $myId); print_r($parts);
最终结果是完全一致的。
内容的提问来源于stack exchange,提问作者rob.m
相关产品推荐
相关产品推荐

