indexOf и lastIndexOf в PHP?

В Java мы можем использовать indexOf а также lastIndexOf, Поскольку эти функции не существуют в PHP, что будет PHP-эквивалентом этого Java-кода?

if(req_type.equals("RMT"))
pt_password = message.substring(message.indexOf("-")+1);
else
pt_password = message.substring(message.indexOf("-")+1,message.lastIndexOf("-"));

22

Решение

Для этого вам понадобятся следующие функции в PHP:

strpos Найти позицию первого вхождения подстроки в строке

strrpos Найти позицию последнего вхождения подстроки в строке

substr Возврат части строки

Вот подпись substr функция:

string substr ( string $string , int $start [, int $length ] )

Подпись substring Функция (Java) выглядит немного иначе:

string substring( int beginIndex, int endIndex )

substring (Java) ожидает, что конечный индекс будет последним параметром, но substr (PHP) ожидает длину.

Это не сложно, чтобы получить конечный индекс в PHP:

$sub = substr($str, $start, $end - $start);

Вот рабочий код

$start = strpos($message, '-') + 1;
if ($req_type === 'RMT') {
$pt_password = substr($message, $start);
}
else {
$end = strrpos($message, '-');
$pt_password = substr($message, $start, $end - $start);
}
32

Другие решения

В php:

  • stripos () Функция используется для поиска позиции первого вхождения нечувствительной к регистру подстроки в строке.

  • strripos () Функция используется для поиска позиции последнего вхождения нечувствительной к регистру подстроки в строке.

Образец кода:

$string = 'This is a string';
$substring ='i';
$firstIndex = stripos($string, $substring);
$lastIndex = strripos($string, $substring);

echo 'Fist index = ' . $firstIndex . ' ' . 'Last index = '. $lastIndex;

Вывод: первый индекс = 2 последний индекс = 13

13

<pre>

<?php
//sample array
$fruits3 = [
"iron",
1,
"ascorbic",
"potassium",
"ascorbic",
2,
"2",
"1"];// Let's say we are looking for the item "ascorbic", in the above array//a PHP function matching indexOf() from JS
echo(array_search("ascorbic", $fruits3, TRUE)); //returns "4"

//a PHP function matching lastIndexOf() from JS world
function lastIndexOf($needle, $arr){
return array_search($needle, array_reverse($arr, TRUE),TRUE);
}
echo(lastIndexOf("ascorbic", $fruits3)); //returns "2"

//so these (above) are the two ways to run a function similar to indexOf and lastIndexOf()

?>
</pre>
2
По вопросам рекламы [email protected]