You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从多维数组提取特定值及从给定数组提取所有ID列表

嘿,我来帮你搞定这两个数组提取的问题~

1. 如何从多维数组中提取特定的数组值?

这得看你的多维数组结构和要提取的内容啦,不过PHP里有几个非常实用的方法:

  • 如果是提取统一键名的列:比如像第二个问题里的关联数组/对象数组,直接用array_column()函数就可以一步到位,它专门用来从多维数组(或对象数组)中取出指定键的所有值。
  • 如果需要条件过滤或嵌套更深的数组:可以用foreach循环遍历,或者写个递归函数来处理复杂的嵌套结构。举个简单的循环例子:
    $multiArray = [['name' => 'A', 'age' => 20], ['name' => 'B', 'age' => 25]];
    $names = [];
    foreach ($multiArray as $item) {
        // 可以加条件,比如只提取age>22的name
        if ($item['age'] > 22) {
            $names[] = $item['name'];
        }
    }
    
2. 从给定数组中获取所有ID的列表

针对你给出的$filteredZips数组,最简洁高效的方法就是用array_column(),再配合array_map()把数值转成字符串(符合你预期的字符串数组结果):

$filteredZips = [
    ["id" => 21, "distance" => "0"],
    ["id" => 20, "distance" => "3.9399923305414037"],
    ["id" => 29, "distance" => "8.33045537474091"]
];

// 提取所有id并转为字符串类型
$id = array_map('strval', array_column($filteredZips, 'id'));
print_r($id);

运行后就能得到你想要的array('21','20','29')啦!

要是你用的PHP版本比较旧(低于5.5,array_column()是5.5才推出的),那用foreach循环也能轻松实现:

$id = [];
foreach ($filteredZips as $zipItem) {
    $id[] = (string)$zipItem['id'];
}

内容的提问来源于stack exchange,提问作者lopamudra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:10:53