<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 前置无关部分</span></span><span>
</span><span><span class="hljs-variable">$dummyArray</span></span><span> = [</span><span><span class="hljs-string">"a"</span></span><span> => </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">"b"</span></span><span> => </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-string">"c"</span></span><span> => </span><span><span class="hljs-number">3</span></span><span>];
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$dummyArray</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$key</span></span><span> => </span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$key</span></span><span> . </span><span><span class="hljs-string">" => "</span></span><span> . </span><span><span class="hljs-variable">$value</span></span><span> . </span><span><span class="hljs-string">"\n"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/**
* 什么是 array_intersect_key?详细介绍这个 PHP 函数的作用和用法
*
* 在 PHP 中,array_intersect_key 是一个用于数组操作的重要函数。它的主要作用是
* 返回一个数组,该数组包含了存在于多个数组中的相同键名的元素,而不关心它们的值。
*
* 基本语法:
* array array_intersect_key(array $array1, array ...$arrays)
*
* 参数说明:
* - $array1: 必须的,第一个输入数组。
* - ...$arrays: 可选的,其他一个或多个数组,用于比较键名。
*
* 返回值:
* 返回一个数组,这个数组只包含 $array1 中那些键也出现在其他数组中的元素。
*
* 使用示例:
*/</span>
</span><span><span class="hljs-variable">$array1</span></span><span> = [
</span><span><span class="hljs-string">"a"</span></span><span> => </span><span><span class="hljs-number">100</span></span><span>,
</span><span><span class="hljs-string">"b"</span></span><span> => </span><span><span class="hljs-number">200</span></span><span>,
</span><span><span class="hljs-string">"c"</span></span><span> => </span><span><span class="hljs-number">300</span></span><span>
];
</span><span><span class="hljs-variable">$array2</span></span><span> = [
</span><span><span class="hljs-string">"b"</span></span><span> => </span><span><span class="hljs-number">400</span></span><span>,
</span><span><span class="hljs-string">"c"</span></span><span> => </span><span><span class="hljs-number">500</span></span><span>,
</span><span><span class="hljs-string">"d"</span></span><span> => </span><span><span class="hljs-number">600</span></span><span>
];
</span><span><span class="hljs-comment">// 取出两个数组中相同键的元素</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_intersect_key</span></span><span>(</span><span><span class="hljs-variable">$array1</span></span><span>, </span><span><span class="hljs-variable">$array2</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
<span class="hljs-comment">/**
* 输出结果:
* Array
* (
* [b] => 200
* [c] => 300
* )
*
* 可以看到,只有键 "b" 和 "c" 存在于 $array1 和 $array2 中,因此最终返回的数组
* 包含这些键对应的 $array1 中的值。
*
* 注意事项:
* 1. array_intersect_key 只比较数组的键名,不比较键值。
* 2. 函数可以同时接受多个数组进行比较,最终返回只保留那些在所有数组中都存在的键。
*
* 示例:多个数组
*/</span>
</span><span><span class="hljs-variable">$array3</span></span><span> = [
</span><span><span class="hljs-string">"c"</span></span><span> => </span><span><span class="hljs-number">700</span></span><span>,
</span><span><span class="hljs-string">"b"</span></span><span> => </span><span><span class="hljs-number">800</span></span><span>
];
</span><span><span class="hljs-variable">$result2</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_intersect_key</span></span><span>(</span><span><span class="hljs-variable">$array1</span></span><span>, </span><span><span class="hljs-variable">$array2</span></span><span>, </span><span><span class="hljs-variable">$array3</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result2</span></span><span>);
<span class="hljs-comment">/**
* 输出结果:
* Array
* (
* [b] => 200
* [c] => 300
* )
*
* 这里,最终结果是保留同时存在于 $array1, $array2 和 $array3 中的键。
*
* 总结:
* array_intersect_key 是处理数组键名交集的利器,尤其适用于在多维数组或关联数组
* 中筛选出指定的键,避免手动循环判断,提高代码效率和可读性。
*/</span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>