在php中,经常会遇到需要从多维数组中提取特定列数据的情况,例如从一个包含多个电影信息的数组中,提取所有电影的id。以下将介绍两种常用的方法来实现这个目标。
方法一:使用循环遍历
这种方法是最基础也最容易理解的。它通过循环遍历多维数组的每一个子数组,然后访问指定键的值,并将其添加到新的数组中。
<?php$arr1 = [ ['id' => 11, 'name' => 'scifi'], ['id' => 12, 'name' => 'documentary'], ['id' => 10, 'name' => 'comedy'],];$arr2 = [];foreach ($arr1 as $internal) { $arr2[] = $internal['id'];}print_r($arr2); // 输出: Array ( [0] => 11 [1] => 12 [2] => 10 )?>登录后复制
这段代码首先定义了一个多维数组 $arr1。然后,创建一个空数组 $arr2,用于存储提取出的ID值。通过 foreach 循环遍历 $arr1 的每一个子数组,并将子数组中键为 'id' 的值添加到 $arr2 中。最后,使用 print_r() 函数打印 $arr2 的内容,可以看到成功提取出了所有ID值。
注意事项:
立即学习“PHP免费学习笔记(深入)”;
这种方法的优点是简单易懂,适用于各种复杂的多维数组结构。如果数组较大,循环遍历可能会影响性能,此时可以考虑使用 array_column() 函数。在循环内部,需要确保访问的键存在于每个子数组中,否则可能会产生 Notice: Undefined index 错误。方法二:使用 array_column() 函数
PHP提供了一个内置函数 array_column(),专门用于从多维数组中返回指定列的值。使用 array_column() 可以更加简洁地实现提取指定键的值的功能。

5分钟定创新选题,3步生成高质量标书!


<?php$arr1 = [ ['id' => 11, 'name' => 'scifi'], ['id' => 12, 'name' => 'documentary'], ['id' => 10, 'name' => 'comedy'],];$arr2 = array_column($arr1, 'id');print_r($arr2); // 输出: Array ( [0] => 11 [1] => 12 [2] => 10 )?>登录后复制
array_column($arr1, 'id') 的作用是从数组 $arr1 中提取键为 'id' 的所有值,并返回一个新的数组 $arr2。
注意事项:
立即学习“PHP免费学习笔记(深入)”;
array_column() 函数只能提取一列的值,如果需要提取多列,需要多次调用该函数。array_column() 函数要求数组的结构比较规整,即每个子数组都必须包含指定的键。如果某些子数组缺少指定的键,则对应位置的值将为 NULL。从 PHP 5.5.0 起可用。总结
两种方法都可以实现从多维数组中提取指定键的值并生成新数组的功能。循环遍历的方法更加灵活,适用于各种复杂的数据结构,但可能会影响性能。array_column() 函数更加简洁高效,但对数组结构有一定要求。在实际应用中,可以根据具体情况选择合适的方法。如果需要更高的性能,并且数组结构规整,建议使用 array_column() 函数。如果需要处理更复杂的数据结构,或者需要进行更精细的控制,则可以选择循环遍历的方法。
以上就是生成准确表达文章主题的标题PHP:从多维数组中提取指定键的值并生成新数组的详细内容,更多请关注php中文网其它相关文章!