ホームページ >バックエンド開発 >PHPチュートリアル >配列値が文字列内に現れる順序を決定する

配列値が文字列内に現れる順序を決定する

WBOY
WBOYオリジナル
2016-06-13 12:16:12937ブラウズ

文字列内に配列値が現れる順序を決定する方法を見つけます
Array
$arr=array('A','M','N');
文字列は不確実です。ただし、M と N は文字列内に 1 回しか出現できません。複数回出現した場合は false が返されます
要件を満たしている場合は、配列 $data['M'], $data[ を返します。 'N']
例:
A MAN は 2, 4 を返します //M は配列内で 2 番目に出現し、N は配列内で 4 番目に出現します (A は 1 と 3 に出現します)
A BOY は false を返します //M または N は含まれません
MAN は 1,3 を返します //M は配列内で 1 番目に出現し、N は配列内で 3 番目に出現します (A は 2 に出現します)
A ATM IN returns 3,5 //M は配列内で 3 番目に出現し、N は配列内で 3 番目に出現します 4 番目に出現します (A は 1 と 2 に出現します)

------解決策のアイデア---------- -
元々は単純な問題だった問題が、あなたの説明のせいで複雑になってしまいました
それが何かわかるでしょうこのコードの結果を見てから行うこと

$arr = array('A','M','N');<br /><br />$data = array(<br />  'A MAN',<br />  'A BOY',<br />  'MAN',<br />  'A ATM IN'<br />);<br /><br />foreach($data as $text) {<br />  $t = str_split($text);<br />  $r[] = array_intersect($t, $arr);<br />}<br />print_r($r);
Array<br />(<br />    [0] => Array<br />        (<br />            [0] => A<br />            [2] => M<br />            [3] => A<br />            [4] => N<br />        )<br /><br />    [1] => Array<br />        (<br />            [0] => A<br />        )<br /><br />    [2] => Array<br />        (<br />            [0] => M<br />            [1] => A<br />            [2] => N<br />        )<br /><br />    [3] => Array<br />        (<br />            [0] => A<br />            [2] => A<br />            [4] => M<br />            [7] => N<br />        )<br /><br />)<br /><br />

- -----解決策--------------------- -
$arr = array('A','M','N ');
$str = 'AMN';
$data = array();
foreach( $arr as $v){
if(substr_count($str,$v) == 1){
$data[$v] = strpos($str,$v);
}
}
var_dump($data);

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。