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

PHP如何搜索多维数组并根据匹配结果生成新数组

PHP多维数组过滤特定值的实现方案

方案1:使用array_filter(推荐,最简洁)

直接通过回调规则过滤匹配的数组项,天然适配多匹配项的筛选场景:

// 你的原始数组
$originalArr = [
    ['make' => 'honda', 'type' => 'motorcycle'],
    ['make' => 'toyota', 'type' => 'truck'],
    ['make' => 'acura', 'type' => 'car'],
    ['make' => 'subaru', 'type' => 'car']
];

// 筛选type为car的项
$targetArr = array_filter($originalArr, function($item) {
    return $item['type'] === 'car';
});

// 重置数组为从0开始的连续索引(和你期望的输出格式完全对齐)
$targetArr = array_values($targetArr);

方案2:沿用以array_column为基础的思路

你原本用的array_search只能返回第一个匹配值的键,要获取所有匹配的键需要搭配array_keys使用:

// 提取所有type字段组成一维数组
$typeList = array_column($originalArr, 'type');
// 获取所有type为car的原始数组键名
$matchedKeys = array_keys($typeList, 'car');

// 遍历匹配键构造目标数组
$targetArr = [];
foreach ($matchedKeys as $key) {
    $targetArr[] = $originalArr[$key];
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 13:24:04