#c# #php #string
#c# #php #строка
Вопрос:
Привет, ребята, это C#
код, который я хочу изменить на php
code, но в нем нет функции insert
and remove
php
for (int i = 0; i < st.Length; i )
{
NewPlace = i * Convert.ToUInt16(st[i]);
NewPlace = NewPlace % st.Length;
ch = st[i];
st = st.Remove(i, 1);
st = st.Insert(NewPlace, ch.ToString());
}
Комментарии:
1. Вы пробовали написать что-нибудь самостоятельно? Люди не будут писать код для вас здесь, в SO.
2. у вас есть пример ввода и вывода или любой код, который вы пробовали, есть
substr()
иsubstr_replace()
просто назовите две функции, которые работали бы для этого. Также строки PHP можно довольно легко превратить в массивы сstr_split($str,1)
помощью.3. это просто функция кодирования для строки. например: ввод: «1234abcd» вывод: «21cbd34a»
Ответ №1:
Я веду себя st
как array
, потому что удаление имеет смысл в arrays
не strings
, тогда ваш код в PHP
выглядит следующим образом:
for($i=0;$i < count($st); $i )
{
$NewPlace = $i * intval($st[$i]);
$NewPlace = $NewPlace % count($st);
$ch = $st[$i];
unset($st[$i]);
$st[$NewPlace] = $ch;
}
$st = array_values($st);
в PHP
вы можете удалить элемент массива с помощью unset()
последняя строка привела к перестановке массива для заполнения пробелов после unset()
Дайте мне знать, если это сработает.
ПРИМЕЧАНИЕ
если вы хотите использовать это для строк, просто добавьте эти две строки до и после приведенного выше скрипта.
$st = str_split($st); //# insert before first line
$st = implode('',$st); //# insert after last line
Комментарии:
1. Спасибо. это мне очень помогло