回调函数处理数组操作
<h4>array_filter() 用回调函数过滤数组中的元素</h4>
<blockquote>
<p>array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ) 返回过滤后的数组。</p>
</blockquote>
<ul>
<li>array--要循环的数组</li>
<li>callback--使用的回调函数,如果没有提供 callback 函数, 将删除 array 中所有等值为 FALSE 的条目。</li>
<li>flag--决定callback接收的参数形式:
ARRAY_FILTER_USE_KEY - callback接受键名作为的唯一参数
ARRAY_FILTER_USE_BOTH - callback同时接受键名和键值</li>
</ul>
<pre><code class="language-php">function odd($var,$key){
return($var & 1);
}
function even($var){
return(!($var & 1));
}
$array1 = ["a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5];
$array2 = [6, 7, 8, 9, 10, 11, 12];
echo "Odd :\n";
print_r(array_filter($array1, "odd",1));//1,3,5
echo "<br>";
echo "Even:\n";
print_r(array_filter($array2, "even"));//2,4,6</code></pre>
<h4>array_map()</h4>
<blockquote>
<p>array_map ( callable $callback , array $array1 [, array $... ] )</p>
</blockquote>
<ul>
<li>callback--回调函数,应用到每个数组里的每个元素。</li>
<li>array1--数组,遍历运行 callback 函数。...</li>
<li>数组列表,每个都遍历运行 callback 函数。</li>
<li>返回值----返回数组,包含 callback 函数处理之后 array1 的所有元素。</li>
</ul>
<pre><code class="language-php">function cube($n){
return($n * $n * $n);
}
$a = [1, 2, 3, 4, 5];
$b = array_map("cube", $a);
print_r($b);</code></pre>