配列処理、ng数の計算
Jun 20, 2016 pm 12:56 PMarray(6) { [0]=> string(62) "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020.csv" [1]=> string(64) "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_1.csv" [2]=> string(64) "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_2.csv" [3]=> string(64) "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_3.csv" [4]=> string(64) "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_4.csv" [5]=> string(65) "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_NG.csv"}
ログイン後にコピー
配列 a の形式で、7020 で始まるファイルをファイルとみなした場合、結果は ts407、bed410-500a1、5306、ng の対応する番号が 1 になります。これはお願いですか?
ディスカッションへの返信 (解決策)
この場合はどうなりますか?
foreach (glob($datapath."/NG/*.csv") as $filename) { preg_match('/.+\/(\d+)/',$filename,$match); echo $value_lotno.'=>'.$match[1].'<br />'; }
ログイン後にコピー
結果を取得します:
5106=>80015127=>72075127=>72075306=>70205306=>70205306=>70205306=>70205306=>70205306=>70205309=>71735309=>71735310=>71025310=>71025310=>72535310=>72535310=>74345310=>74345310=>74435310=>74435310=>75085310=>75085310=>75735310=>7573
ログイン後にコピー
この結果を次のように配列に変換する方法:
array('5106=>8001','5127=>7207','5306=>7020','5309=>7173','5310=>7102','5310=>7253','5310=>7434','5310=>7443','5310=>7508','5310=>7573');
ログイン後にコピー
$arr=array( '5106=>8001', '5127=>7207', '5127=>7207', '5306=>7020', '5306=>7020', '5306=>7020', '5306=>7020', '5306=>7020', '5306=>7020', '5309=>7173', '5309=>7173', '5310=>7102', '5310=>7102', '5310=>7253', '5310=>7253', '5310=>7434', '5310=>7434', '5310=>7443', '5310=>7443', '5310=>7508', '5310=>7508', '5310=>7573', '5310=>7573',);echo "<pre>";print_r(array_values(array_unique($arr)));echo "</pre>";/*Array( [0] => 5106=>8001 [1] => 5127=>7207 [2] => 5306=>7020 [3] => 5309=>7173 [4] => 5310=>7102 [5] => 5310=>7253 [6] => 5310=>7434 [7] => 5310=>7443 [8] => 5310=>7508 [9] => 5310=>7573)*/
ログイン後にコピー
ログイン後にコピー
$arr=array( '5106=>8001', '5127=>7207', '5127=>7207', '5306=>7020', '5306=>7020', '5306=>7020', '5306=>7020', '5306=>7020', '5306=>7020', '5309=>7173', '5309=>7173', '5310=>7102', '5310=>7102', '5310=>7253', '5310=>7253', '5310=>7434', '5310=>7434', '5310=>7443', '5310=>7443', '5310=>7508', '5310=>7508', '5310=>7573', '5310=>7573',);echo "<pre>";print_r(array_values(array_unique($arr)));echo "</pre>";/*Array( [0] => 5106=>8001 [1] => 5127=>7207 [2] => 5306=>7020 [3] => 5309=>7173 [4] => 5310=>7102 [5] => 5310=>7253 [6] => 5310=>7434 [7] => 5310=>7443 [8] => 5310=>7508 [9] => 5310=>7573)*/
ログイン後にコピー
ログイン後にコピー
まさか。元の形式は配列ではありません。元の形式を配列に変換したいと考えています。
すべてループしてませんでしたか?....
echo $value_lotno.'=>'.$match[1].'<br />';
以下に追加します
$arr[]=$value_lotno.'=>'.$match[1];
以上です すべてループアウトではありませんか?....
echo $value_lotno.'=>'.$match[1].'<br />';
$arr[]=$value_lotno.'=>'.$match を追加します[1];
これでうまくいきます
これは私の質問であり、ループ print_r の外に配置する必要がありますが、この質問は私の当初の意図からは程遠いものです。たとえば、パス 1# の場合、パスの末尾の 7020 で始まるファイルが 1 つのファイルとして表示される場合、ng フォルダー内のファイルの数は 1 と計算されます。これをリクエストするにはどうすればよいですか?
例を見てみましょう!
例を見てみましょう。
次の結果を取得します。
$datapath = '../../dat/DIG/TestFunction/'.$machine.'/'.$value_type.'/'.$value_lotno;//已求得var_dump(glob($datapath.'/NG/*.*', GLOB_BRACE));
ログイン後にコピー
array(1) { [0]=> string(62) "../../dat/DIG/TestFunction/TS407/BED410-500A1/5106/NG/8001.csv"}array(2) { [0]=> string(62) "../../dat/DIG/TestFunction/TS407/BED410-500A1/5127/NG/7207.csv" [1]=> string(65) "../../dat/DIG/TestFunction/TS407/BED410-500A1/5127/NG/7207_NG.csv"}array(0) {}array(0) {}array(6) { [0]=> string(62) "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020.csv" [1]=> string(64) "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_1.csv" [2]=> string(64) "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_2.csv" [3]=> string(64) "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_3.csv" [4]=> string(64) "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_4.csv" [5]=> string(65) "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_NG.csv"}
ログイン後にコピー
$arr=array( "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_1.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_2.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_3.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_4.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_NG.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7021_NG.csv",//添加测试);foreach($arr as $v){ $tmp=explode('/',$v); $lastfile=array_pop($tmp); preg_match('/^(\d+)(\.|\_)/',$lastfile,$m); $arr_file[]=$m[1];}$count=count(array_unique($arr_file));echo $count;//2
ログイン後にコピー
ログイン後にコピー
7# のようなものがある場合、これは空の配列の場合は間違っており、1 になります。
$arr=array( "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_1.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_2.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_3.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_4.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_NG.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7021_NG.csv",//添加测试);foreach($arr as $v){ $tmp=explode('/',$v); $lastfile=array_pop($tmp); preg_match('/^(\d+)(\.|\_)/',$lastfile,$m); $arr_file[]=$m[1];}$count=count(array_unique($arr_file));echo $count;//2
ログイン後にコピー
ログイン後にコピー
ああ、二次元かどうかで判断してください ただ判断してください
$all=array(array( "../../dat/DIG/TestFunction/TS407/BED410-500A1/5106/NG/8001.csv"),array( "../../dat/DIG/TestFunction/TS407/BED410-500A1/5127/NG/7207.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5127/NG/7207_NG.csv",),array(),array(),array( "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_1.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_2.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_3.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_4.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_NG.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7021_NG.csv",//添加测试));foreach($all as $arr){ if(!$arr){ continue; } foreach($arr as $v){ $tmp=explode('/',$v); $lastfile=array_pop($tmp); preg_match('/^(\d+)(\.|\_)/',$lastfile,$m); $arr_file[]=$m[1]; }}$count=count(array_unique($arr_file));echo $count;//4
ログイン後にコピー
ログイン後にコピー
合計を求めているのではなく、成分の合計: 1,1, 2
どうやって見つけますか?
$all=array(array( "../../dat/DIG/TestFunction/TS407/BED410-500A1/5106/NG/8001.csv"),array( "../../dat/DIG/TestFunction/TS407/BED410-500A1/5127/NG/7207.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5127/NG/7207_NG.csv",),array(),array(),array( "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_1.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_2.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_3.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_4.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7020_NG.csv", "../../dat/DIG/TestFunction/TS407/BED410-500A1/5306/NG/7021_NG.csv",//添加测试));foreach($all as $arr){ if(!$arr){ continue; } foreach($arr as $v){ $tmp=explode('/',$v); $lastfile=array_pop($tmp); preg_match('/^(\d+)(\.|\_)/',$lastfile,$m); $arr_file[]=$m[1]; }}$count=count(array_unique($arr_file));echo $count;//4
ログイン後にコピー
ログイン後にコピー
$count=count(array_unique($arr_file));
$new=array_count_values($arr_file) に変更します);
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

人気の記事
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌

人気の記事
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック
Gmailメールのログイン入り口はどこですか?
7285
9


Java チュートリアル
1622
14


CakePHP チュートリアル
1342
46


Laravel チュートリアル
1259
25


PHP チュートリアル
1206
29



LaravelのバックエンドでReactアプリを構築する:パート2、React
