배열에서 123개 미만의 항목을 삭제하는 것입니다.
실험을 했는데 결과가 안 나오네요. 어떻게 바꾸나요?
삭제되지 않는 배열의 요소를 알아보고 공부하세요...
<code>$arr = Array(1 , 2 , 3713231987,3710001690,3713182016,3714441990,3713231932); user_array_filter($arr, 'myGt' , 123 ) ; echo '<pre class="brush:php;toolbar:false">';print_r($arr);echo ''; function user_array_filter( &$array, $callback ) { $args = func_get_args(); //把function 所有参数保存成数组; if( count($args) < 2 ) exit('function user_array_filter()参数错误 , 最少有两个参数.'); if( count($args) == 2 ) { foreach( $array as $k => $v ) { $result = $callback($v); if( !$result ) { return false;//★★★★★★★★★★★★★★★★★★★★★★ } } } else { $limit = $args[2]; // [0]->处理数组 , [1]->function , [2]->value foreach( $array as $k => $v ) { $result = $callback($v, $limit); if( !$result ) { return false;//★★★★★★★★★★★★★★★★★★★★★★ } } } } function myGt($val, $limit = 88){ if ($val >= $limit) return true; return false; }
배열에서 123개 미만의 항목을 삭제하는 것입니다.
실험을 했는데 결과가 안 나오네요. 어떻게 바꾸나요?
삭제되지 않는 배열의 요소를 알아보고 공부하세요..
<code>$arr = Array(1 , 2 , 3713231987,3710001690,3713182016,3714441990,3713231932); user_array_filter($arr, 'myGt' , 123 ) ; echo '<pre class="brush:php;toolbar:false">';print_r($arr);echo ''; function user_array_filter( &$array, $callback ) { $args = func_get_args(); //把function 所有参数保存成数组; if( count($args) < 2 ) exit('function user_array_filter()参数错误 , 最少有两个参数.'); if( count($args) == 2 ) { foreach( $array as $k => $v ) { $result = $callback($v); if( !$result ) { return false;//★★★★★★★★★★★★★★★★★★★★★★ } } } else { $limit = $args[2]; // [0]->处理数组 , [1]->function , [2]->value foreach( $array as $k => $v ) { $result = $callback($v, $limit); if( !$result ) { return false;//★★★★★★★★★★★★★★★★★★★★★★ } } } } function myGt($val, $limit = 88){ if ($val >= $limit) return true; return false; }
user_array_filter의 else를 다음 코드로 변경
<code> else { $limit = $args[2]; // [0]->处理数组 , [1]->function , [2]->value foreach( $array as $k => $v ) { $result = $callback($v, $limit); if( !$result ) { unset($array[$k]); } } } </code>
ps: 배열 요소를 삭제하려면 배열을 foreach한 다음 루프에서 조건이 충족되지 않으면 전체 키를 unset()할 수 있습니다.