如何用PHP数组函数提取匹配值的数组元素?或用jQuery实现?
PHP 实现方案
需求明确:筛选$array2中值包含$array1里"google"或"edureka"的元素,再将结果重新设置为指定键名("i"、"j")的新数组。
代码实现
$array1 = array("a"=>"google","b"=>"edureka","c"=>"blue"); $array2 = array("e"=>"https://www.google.com/","f"=>"https://www.edureka.co","h"=>"orange"); // 提取需要匹配的关键词 $targetWords = [$array1['a'], $array1['b']]; // 过滤array2,保留包含目标关键词的元素 $filteredItems = array_filter($array2, function($val) use ($targetWords) { foreach ($targetWords as $word) { // PHP8.0+用str_contains,低版本替换为strpos($val, $word) !== false if (str_contains($val, $word)) { return true; } } return false; }); // 为过滤结果设置自定义键名 $array3 = array_combine(['i', 'j'], $filteredItems); // 输出结果 print_r($array3);
jQuery 实现方案
前端场景下可按以下逻辑处理:
代码实现
var array1 = {"a":"google","b":"edureka","c":"blue"}; var array2 = {"e":"https://www.google.com/","f":"https://www.edureka.co","h":"orange"}; // 提取目标关键词 var targetWords = [array1.a, array1.b]; var filtered = {}; // 筛选符合条件的元素 $.each(array2, function(key, val) { for (var i = 0; i < targetWords.length; i++) { if (val.includes(targetWords[i])) { filtered[key] = val; break; } } }); // 重新设置键名得到目标数组 var array3 = {"i": filtered.e, "j": filtered.f}; // 输出结果 console.log(array3);
内容的提问来源于stack exchange,提问作者sandhya
相关产品推荐
相关产品推荐

