文字列から別の配列にC5、C6などのグレードを抽出しようとしています。以下のサンプル
String:
$str = "English Language-C5,Mathematics-C6,Economics-B3,Biology-C5,Geography-B2,Yoruba-B3,Agricultural Science-C6";
上記の文字列を配列に分解するために、次の関数を作成しました
function multiexplode($delimiters,$string) {
$replace = str_replace(' ', '', $string); // remove spaces between subjects
$ready = str_replace($delimiters, $delimiters[0], $replace);
$launch = explode($delimiters[0], $ready);
return $launch;
}
print_r(multiexplode(array(" ",",","-"),$str));
// This was the result
Array
(
[0] => EnglishLanguage
[1] => C5
[2] => Mathematics
[3] => C6
[4] => Economics
[5] => B3
[6] => Biology
[7] => C5
[8] => Geography
[9] => B2
[10] => Yoruba
[11] => B3
[12] => AgriculturalScience
[13] => C6
)
グレード(C6、B2 ...)を一意に配列に抽出するにはどうすればよいですか。これを解決するための別のアプローチ、または最良の解決策に到達するためにコードで何をすべきかをいただければ幸いです。ありがとう
文字列をCSVとして解析してから、で展開します-
。
<?php
$str = "English Language-C5,Mathematics-C6,Economics-B3,Biology-C5,Geography-B2,Yoruba-B3,Agricultural Science-C6";
foreach(str_getcsv($str) as $row){
$values = explode('-', $row);
$class[] = $values[0];
$grades[] = $values[1];
}
本当にグレードだけが必要な場合は、$grades
配列を使用してください。必要に応じて、クラスに一致させることもできます。さらに、いくつかのパターンを検証したい場合preg_match
は、を使用できます$values[1]
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加