回答編集履歴
3
コメント
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
微調整
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
|
-
|
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
重複名前対応追加
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);
|