teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

コメント

2016/07/27 03:38

投稿

asahina_dev
asahina_dev

スコア610

answer CHANGED
@@ -9,4 +9,24 @@
9
9
  ```
10
10
  という連想配列に置き換えれば VLOOKUP(完全一致のみ)はできるはずです。
11
11
 
12
- ※ HLOOKUP(完全一致のみ) は `$csv` 作成時に縦横入れ替えればいいだけ
12
+ ※ HLOOKUP(完全一致のみ) は `$csv` 作成時に縦横入れ替えればいいだけ
13
+
14
+
15
+ (動作確認してないので多少のミスあるかも)
16
+
17
+ ## 完全一致の場合
18
+
19
+ ```php
20
+ $result = array_filter(function($v, $k) use ($name) {
21
+ return strcmp($name, $k) === 0;
22
+ });
23
+ ```
24
+ #$ 部分一致の場合
25
+
26
+ ```php
27
+
28
+ $result = array_filter(function($v, $k) use ($name) {
29
+ return preg_match("/{$name}/", $k);
30
+ });
31
+ ```
32
+

2

微調整

2016/07/27 03:38

投稿

asahina_dev
asahina_dev

スコア610

answer CHANGED
@@ -1,8 +1,8 @@
1
1
  ```php
2
2
  $csv = array(
3
- "高橋"=>array(array("高橋",10, 2, 1, 20, 5, 3, "レコード番号")),
3
+ "高橋"=>array( "レコード番号" => array("高橋",10, 2, 1, 20, 5, 3)),
4
+ "鈴木"=>array( "レコード番号" => array("鈴木",10, 2, 1, 20, 5, 3)
4
- "鈴木"=>array(array("鈴木",10, 2, 1, 20, 5, 3, "レコード番号")
5
+ , "レコード番号" => array("鈴木",10, 2, 1, 20, 5, 3)),
5
- ,array("鈴木",10, 2, 1, 20, 5, 3, "レコード番号")),
6
6
  );
7
7
  # 名前の番号が欲しい場合は以下で取得
8
8
  $names = array_keys($csv);

1

重複名前対応追加

2016/07/27 03:22

投稿

asahina_dev
asahina_dev

スコア610

answer CHANGED
@@ -1,6 +1,8 @@
1
1
  ```php
2
2
  $csv = array(
3
- "高橋"=>array("高橋",10, 2, 1, 20, 5, 3),// ※ 以下省略
3
+ "高橋"=>array(array("高橋",10, 2, 1, 20, 5, 3, "レコード番号")),
4
+ "鈴木"=>array(array("鈴木",10, 2, 1, 20, 5, 3, "レコード番号")
5
+ ,array("鈴木",10, 2, 1, 20, 5, 3, "レコード番号")),
4
6
  );
5
7
  # 名前の番号が欲しい場合は以下で取得
6
8
  $names = array_keys($csv);