Substr не позволяет обрабатывать двузначные коды в форме - PullRequest
0 голосов
/ 15 января 2019

У меня есть массив, который использует два кода в списке и помещает их в форму на следующей странице.В настоящее время у меня есть:

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

Теперь, если я выберу что-либо с одной цифрой 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);

Тогда неткоды отображаются.

Как я могу учесть оба?

ОБНОВЛЕНИЕ:

В настоящее время, приведенный выше код, если я выберу 10-58, сбросит c1 как 1 ис2 как -5

1 Ответ

0 голосов
/ 15 января 2019

Вы можете легко использовать explode() и 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
)

Если вы не уверены, что ваши данные всегда верны, вы можете проверить, что данные имеют 2 компонента после использования explode(), и только затем преобразовать их, вы также можете сделать что-то, чтобы сообщить и сообщить об ошибке или что вам нужно ...

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

print_r($codes);
...