Substr 不允许在表单上处理两位数代码

Substr not allowing double digit codes to process on form

我有一个数组,它使用列表中的两个代码并将它们推送到下一页的表单中。目前我有:

            $code= array();
            $code['c1'] = substr($part, 0, 1);
            $code['c2'] = substr($part, 2);

现在,如果我 select 任何带有单个数字 c1 和单数或双数 c2 的东西,它就会添加到表格中。

示例:

1-9
1-15
9-12
9-9

但如果我尝试在 c1 中添加任何带两位数的内容,它不会添加,例如:

10-1
10-2
10-11

如果我尝试

$codes= array();
$codes['c1'] = substr($part, 0, 2);
$codes['c2'] = substr($part, 2);

然后没有代码显示。

我如何解释两者?

更新:

目前,上面的代码,如果我 select 10-58,会将 c1 转储为 1,将 c2 转储为 -5

您可以轻松使用explode() and list()拆分任意代码组合...

$part = "1-15";
$codes = array();
list($codes['c1'], $codes['c2']) = explode("-", $part);
print_r($codes);

给...

Array
(
    [c1] => 1
    [c2] => 15
)

对于

$part = "10-15";

它给...

Array
(
    [c1] => 10
    [c2] => 15
)

如果你不确定你的数据是否总是正确的,你可以在使用 explode() 之后检查数据是否有 2 个组件,然后只转换它,你也可以做一些报告和错误或任何你需要...

$split = explode("-", $part);
if ( count($split) == 2 ){
    $codes['c1'] = $split[0];
    $codes['c2'] = $split[1];
}
else    {
    // Not of correct format.
}

print_r($codes);