Допустим, у меня есть такой массив:
$array = array ('1','2','3','4');
И я хочу добавить части данной строки (даже если она состоит из чисел) в массив, если она еще не существует в массиве. Например, если заданная строка 1234
, она должна добавить 12
, 23
и 34
. Я написал для него простой код:
$string = '1234';
$string_length = 4;
$array = array ('1','2','3','4');
for($i=0;$i<$string_length-1;$i++){
$element = substr($string,$i,2);
if (!in_array($element, $array)){
array_push($array, $element);
}
}
Хорошо работает, когда я пытаюсь 1234
как $string
. Но когда я пытаюсь 1024
как $string
, он возвращает массив следующим образом:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 10
[5] => 24
)
Как видите, после [4] => 10
должно быть [5] => 02
, но его нет.
Причина в том, что 02
равно 2
(которое находится в первом заданном массиве) как целое число. Вот почему код пропустил его. Но мне нужно добавить это.
Для решения проблемы я установил тип $element
как string
. Поэтому я добавил settype($element,'string');
после $string_length
в своем коде, но ничего не изменилось.
Что я могу сделать?