QA@IT
«質問へ戻る

他の書き方を追記

2
本文
 array_filterではできないと思います
 
 callback関数などを用いて上記のような処理はできないでしょうか
+
+## 追記
+
+ngyukiさんのがfunctionでまとまってていいですが、
+他の書き方考えてみました
+
+パターン1
+```php
+$limit = 5;
+$callback = function ($var) use ($limit) {
+    return ($var > $limit);
+};
+print_r(array_filter($array, $callback));
+```
+
+パターン2
+```php
+$func = function ($limit) {
+    return function ($var) use ($limit) {
+        return ($var > $limit);
+    };  
+};
+$limit = 5;
+print_r(array_filter($array, $func($limit)));
+```
+
+どれを選ぶかプロジェクト次第ですかね、と思ってます
+せっかくarray_filterで短くかけるので、短いのがいいかと思ってます
+(絞る処理を自前で書くのにくらべて)

phpのarray_filterに引数を追加したい

function filter($var) {                                         
    return ($var >= 5);                                       
}
$array = [1,2,3,4,5,6,7,8,9];                                   
print_r(array_filter($array, 'filter'));                        

のfilterを

function filter($var, $limit) {                                         
    return ($var >= $limit);                                       
}

として、配列を絞る条件を変えたいのですが
array_filterではできないと思います

callback関数などを用いて上記のような処理はできないでしょうか

追記

ngyukiさんのがfunctionでまとまってていいですが、
他の書き方考えてみました

パターン1

$limit = 5;
$callback = function ($var) use ($limit) {
    return ($var > $limit);
};
print_r(array_filter($array, $callback));

パターン2

$func = function ($limit) {
    return function ($var) use ($limit) {
        return ($var > $limit);
    };  
};
$limit = 5;
print_r(array_filter($array, $func($limit)));

どれを選ぶかプロジェクト次第ですかね、と思ってます
せっかくarray_filterで短くかけるので、短いのがいいかと思ってます
(絞る処理を自前で書くのにくらべて)

```php
function filter($var) {                                         
    return ($var >= 5);                                       
}
$array = [1,2,3,4,5,6,7,8,9];                                   
print_r(array_filter($array, 'filter'));                        
```

のfilterを
```php
function filter($var, $limit) {                                         
    return ($var >= $limit);                                       
}
```
として、配列を絞る条件を変えたいのですが
array_filterではできないと思います

callback関数などを用いて上記のような処理はできないでしょうか

## 追記

ngyukiさんのがfunctionでまとまってていいですが、
他の書き方考えてみました

パターン1
```php
$limit = 5;
$callback = function ($var) use ($limit) {
    return ($var > $limit);
};
print_r(array_filter($array, $callback));
```

パターン2
```php
$func = function ($limit) {
    return function ($var) use ($limit) {
        return ($var > $limit);
    };  
};
$limit = 5;
print_r(array_filter($array, $func($limit)));
```

どれを選ぶかプロジェクト次第ですかね、と思ってます
せっかくarray_filterで短くかけるので、短いのがいいかと思ってます
(絞る処理を自前で書くのにくらべて)

callback関数使わずともすっきりかければと思います

2
本文
 として、配列を絞る条件を変えたいのですが
 array_filterではできないと思います
 
-callback関数を用いて上記のような処理はできないでしょうか
+callback関数などを用いて上記のような処理はできないでしょうか

phpのarray_filterに引数を追加したい

function filter($var) {                                         
    return ($var >= 5);                                       
}
$array = [1,2,3,4,5,6,7,8,9];                                   
print_r(array_filter($array, 'filter'));                        

のfilterを

function filter($var, $limit) {                                         
    return ($var >= $limit);                                       
}

として、配列を絞る条件を変えたいのですが
array_filterではできないと思います

callback関数などを用いて上記のような処理はできないでしょうか

```php
function filter($var) {                                         
    return ($var >= 5);                                       
}
$array = [1,2,3,4,5,6,7,8,9];                                   
print_r(array_filter($array, 'filter'));                        
```

のfilterを
```php
function filter($var, $limit) {                                         
    return ($var >= $limit);                                       
}
```
として、配列を絞る条件を変えたいのですが
array_filterではできないと思います

callback関数などを用いて上記のような処理はできないでしょうか

質問を投稿

phpのarray_filterに引数を追加したい

function filter($var) {                                         
    return ($var >= 5);                                       
}
$array = [1,2,3,4,5,6,7,8,9];                                   
print_r(array_filter($array, 'filter'));                        

のfilterを

function filter($var, $limit) {                                         
    return ($var >= $limit);                                       
}

として、配列を絞る条件を変えたいのですが
array_filterではできないと思います

callback関数を用いて上記のような処理はできないでしょうか

```php
function filter($var) {                                         
    return ($var >= 5);                                       
}
$array = [1,2,3,4,5,6,7,8,9];                                   
print_r(array_filter($array, 'filter'));                        
```

のfilterを
```php
function filter($var, $limit) {                                         
    return ($var >= $limit);                                       
}
```
として、配列を絞る条件を変えたいのですが
array_filterではできないと思います

callback関数を用いて上記のような処理はできないでしょうか