web-dev-qa-db-ja.com

PHPのindexOfとlastIndexOf?

Javaでは、indexOflastIndexOfを使用できます。これらの関数は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("-"));
27
Gaurav

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のend-indexで目的の長さを取得する :は難しくありません:

$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);
}
39
Alfred Bez

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

15
Mahbub
<?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 "2"

// 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 "4"

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