配列処理、ng の数を計算します
この投稿は、lazygc520 によって最終編集されました (2015-05-12 22:26:04)
<br />array(6) {<br /> [0]=><br /> string(62) "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020.csv"<br /> [1]=><br /> string(64) "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_1.csv"<br /> [2]=><br /> string(64) "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_2.csv"<br /> [3]=><br /> string(64) "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_3.csv"<br /> [4]=><br /> string(64) "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_4.csv"<br /> [5]=><br /> string(65) "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_NG.csv"<br />}<br />
ログイン後にコピー
配列 a の形式7020 で始まるファイルを 1 つのファイルとみなした場合、結果は次のようになります: ts407、bed410-500a1、5306、ng 対応する番号は 1 です。これを求めるにはどうすればよいですか?
------解決策のアイデア----------------------<br />$arr=array(<br /> "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020.csv",<br /> "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_1.csv",<br /> "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_2.csv",<br /> "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_3.csv",<br /> "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_4.csv",<br /> "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_NG.csv",<br /> "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7021_NG.csv",//添加测试<br />);<br />foreach($arr as $v){<br /> $tmp=explode('/',$v);<br /> $lastfile=array_pop($tmp);<br /> preg_match('/^(\d+)(\.<br><font color='#FF8000'>------解决思路----------------------</font><br>\_)/',$lastfile,$m);<br /> $arr_file[]=$m[1];<br />}<br />$count=count(array_unique($arr_file));<br />echo $count;//2<br />
ログイン後にコピー