«

在 PHP 中,如果只想从一个数组中获取特定的字段,可以使用array_intersect_key

chunkuan 发布于 阅读:147 后端


在 PHP 中,如果你只想从一个数组中获取特定的字段,你可以使用 array_intersect_key 函数结合一个包含你所需键的数组来实现。这种方法不会改变原始数组,而是返回一个新的数组,只包含你指定的键。

下面是一个示例,展示了如何从 $video_data 数组中提取 video_idurltitle 三个字段:

<?php
$video_data = [
    'video_id' => '12345',
    'url' => 'https://example.com/video12345',
    'title' => 'My Video Title',
    'cover' => 'https://example.com/cover12345.jpg',
    'description' => 'This is a video description',
    'duration' => '120',
];

// 创建一个包含你想要保留的键的数组
$keys_to_keep = ['video_id', 'url', 'title'];

// 使用 array_intersect_key 来过滤数组
$filtered_video_data = array_intersect_key($video_data, array_flip($keys_to_keep));

print_r($filtered_video_data);
?>

输出将会是:

Array
(
    [video_id] => 12345
    [url] => https://example.com/video12345
    [title] => My Video Title
)

这里的关键步骤是:

  1. 创建一个包含你想要保留的键的数组 $keys_to_keep
  2. 使用 array_flip 函数将 $keys_to_keep 数组的值和键互换,这样键就变成了你想要的键,而值则变成了对应的索引。
  3. 使用 array_intersect_key 函数,它根据第一个数组的键和第二个数组的键的交集来过滤数组。由于第二个数组是由 array_flip 生成的,所以实际上它根据 $keys_to_keep 中的键来过滤 $video_data

这种方法的好处是代码清晰且易于理解,同时也保持了原始数据的完整性。

php array_intersect_key 数组处理 array_flip