phpのプログラムについてですが・・・
エクセルのVLOOKUP関数みたいな関数をphpで作れますか?
csv形式で、下記のようなデータが入っており、配列として出力したいのですが、
csvデータを読み取り1行ごとに配列に格納することはできたのですが、その後の処理がわかりません。。
なお、名前が重複している箇所は、最短取得の場合は上のデータを全取得の場合は、全てのデータを取るような形式にしたいです。
VLOOKの指定範囲については、csvデータ全体なので引数として範囲を設定しなくてもOKです。
data.csv
-, 出場回数,ゴール,カードをもらった数,(去年の)出場回数,(去年の)ゴール,(去年の)カードをもらった数
高橋, 10, 2, 1, 20, 5, 3
佐藤, 15, 4, 3, 21, 7, 4
鈴木, 12, 5, 2, 22, 5, 5
中村, 14, 6, 4, 44, 8, 6
国分, 15, 3, 5, 22, 9, 3
鈴木, 16, 4, 6, 18, 3, 1
成功例
php
1<?php 2//全取得で鈴木選手のゴール数の値を取得する場合 3$ret = $cl->execute("v","鈴木",2,true) 4var_dump($ret); 5array(2) { 6 [0] => 7 string(1) "5" 8 [1] => 9 string(1) "4" 10} 11?>
なお見つからなかった場合は
php
1<?php 2//全取得で鈴木選手のゴール数の値を取得する場合 3$ret = $cl->execute("v","鈴木",99,true) 4var_dump($ret); 5array(1) { 6 [0] => 7 string(4) "#N/A" 8} 9?>
と返す。
今書いているコードを共有いたします...
php
1<?php 2 //data.csvを読み込み1行ごとに配列に落としこむ処理 3 function execute($csvFile) { 4 //table.csvの読み込み 5 $csvFile = __DIR__ ."/data.csv"; 6 7 //文字コード変換 8 $csvData = mb_convert_encoding(file_get_contents("$csvFile"),'UTF-8','ASCII,JIS,UTF-8,EUC-JP,SJIS'); 9 10 //改行で分割 11 $csvLine = explode("\n",$csvData); 12 return $csvLine; 13 } 14 15 16 $csvFile =__DIR__ ."/data.csv"; 17 $ret = execute($csvFile); 18 var_dump($ret); 19?>
かなり初歩的なことしか進んでなく、情けないですが何卒ご教授お願いいたします。。。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/27 04:03
2016/07/27 04:29
2016/07/27 06:16
2016/07/27 06:54
2016/07/27 07:20
2016/07/27 07:30
2016/07/27 11:11 編集
2016/07/27 11:13