>  기사  >  백엔드 개발  >  array_map/array_filter/array_walk는 foreach와 동일한 방식으로 배열을 탐색합니다.

array_map/array_filter/array_walk는 foreach와 동일한 방식으로 배열을 탐색합니다.

WBOY
WBOY원래의
2016-10-22 00:14:251440검색

array_walk는 foreach와 동일합니다.

<code>$arr = ['Client'=>'jQuery','Server'=>'PHP'];
array_walk($arr, function($v, $k) {
    echo "键:$k 值:$v\n";
});</code>

예를 들어 배열 $arr 요소의 앞뒤 공백을 제거합니다.

<code>array_walk($arr, function(&$v) { $v = trim($v); });
foreach($arr as &$v) { $v = trim($v); }
array_filter: 用回调函数过滤数组中的单元,返回过滤后的数组

var_export(
    array_filter([1, 2, 3], function($v) {
        return $v > 1;
    })
);
和
foreach([1, 2, 3] as $k => $v) {
    if($v > 1) {
        $tmp[$k] = $v;
    }
}
var_export($tmp);
都输出:
array (
  1 => 2,
  2 => 3,
)</code>

PHP 배열 매핑 축소(MapReduce):

<code>array_map/array_reduce
array_map: 将回调函数作用到给定数组的单元上
var_export(
    array_map(function ($v) {
        return $v * $v;
    }, [1, 2, 3])
);
和
foreach([1, 2, 3] as $v) {
    $tmp[] = $v * $v;
}
var_export($tmp);
都输出:
array (
  0 => 1,
  1 => 4,
  2 => 9,
)</code>

array_reduce: 콜백 함수를 사용하여 배열을 반복적으로 단일 값으로 줄입니다.
//출력 16, 즉 10+1+2+3, 초기 값은 10입니다.

<code>echo array_reduce([1, 2, 3], function($result, $item) {
    $result = $result + $item;
    return $result;
}, 10);
用foreach表达:
$result = 10;
foreach([1, 2, 3] as $v) {
    $result = $result + $v;
}
echo $result;</code>

실행 효과는 동일하지만 함수를 사용하는 것이 빠른지, foreach를 사용하는 것이 빠른지

답글 내용:

array_walk는 foreach와 동일합니다.

<code>$arr = ['Client'=>'jQuery','Server'=>'PHP'];
array_walk($arr, function($v, $k) {
    echo "键:$k 值:$v\n";
});</code>

예를 들어 배열 $arr 요소의 앞뒤 공백을 제거합니다.

<code>array_walk($arr, function(&$v) { $v = trim($v); });
foreach($arr as &$v) { $v = trim($v); }
array_filter: 用回调函数过滤数组中的单元,返回过滤后的数组

var_export(
    array_filter([1, 2, 3], function($v) {
        return $v > 1;
    })
);
和
foreach([1, 2, 3] as $k => $v) {
    if($v > 1) {
        $tmp[$k] = $v;
    }
}
var_export($tmp);
都输出:
array (
  1 => 2,
  2 => 3,
)</code>

PHP 배열 매핑 축소(MapReduce):

<code>array_map/array_reduce
array_map: 将回调函数作用到给定数组的单元上
var_export(
    array_map(function ($v) {
        return $v * $v;
    }, [1, 2, 3])
);
和
foreach([1, 2, 3] as $v) {
    $tmp[] = $v * $v;
}
var_export($tmp);
都输出:
array (
  0 => 1,
  1 => 4,
  2 => 9,
)</code>

array_reduce: 콜백 함수를 사용하여 배열을 반복적으로 단일 값으로 줄입니다.
//출력 16, 즉 10+1+2+3, 초기 값은 10입니다.

<code>echo array_reduce([1, 2, 3], function($result, $item) {
    $result = $result + $item;
    return $result;
}, 10);
用foreach表达:
$result = 10;
foreach([1, 2, 3] as $v) {
    $result = $result + $v;
}
echo $result;</code>

실행 효과는 동일하지만 함수를 사용하는 것이 빠른지, foreach를 사용하는 것이 빠른지

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.