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

回答編集履歴

1

質問の関数を修正したものを追記しました。

2019/05/20 15:37

投稿

Eggpan
Eggpan

スコア3297

answer CHANGED
@@ -22,4 +22,41 @@
22
22
  return get_user_by( $type, $value ) !== false;
23
23
  ```
24
24
 
25
+ 追記:
26
+ 第2引数が文字列と配列、どちらが来ても処理出来るようにしたい、とのことでしたので
27
+ 元のコードから変化が少ないような書き方にしてみました。
28
+ ```
29
+ function is_user( $type, $value ) {
30
+ if( is_array($value) ){
31
+ foreach ( $value as $v ) {
32
+ if($type=='name'){
33
+ $user_data = get_user_by( 'name', $v );
34
+ }
35
+ else if($type=='id'){
36
+ $user_data = get_user_by( 'id', $v );
37
+ }
38
+ if ($user_data){
39
+ return true;
40
+ }
41
+ }
42
+ // foreach の検索結果で見つからなかったらfalseを返す
25
- 解決の参考になれば幸いです。
43
+ return false;
44
+ }
45
+ else{
46
+ if($type=='name'){
47
+ $user_data = get_user_by( 'name', $value );
48
+ }
49
+ else if($type=='id'){
50
+ $user_data = get_user_by( 'id', $value );
51
+ }
52
+ if ($user_data){
53
+ return true;
54
+ }
55
+ else{
56
+ return false;
57
+ }
58
+ }
59
+ }
60
+ ```
61
+
62
+ 配列が渡った場合、ループで1件ずつ確認して、どこかで見つかったらtrueを返す、としています。