首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将一个数组的值与另一个数组的键匹配

将一个数组的值与另一个数组的键匹配
EN

Stack Overflow用户
提问于 2015-06-23 06:33:20
回答 2查看 674关注 0票数 0

PHP newb试图在array1的键中查找array2的值,并在它们匹配的地方对array1的值执行一些操作。我很确定这很容易,但是我对php不是很熟悉。任何帮助都将不胜感激。一直在修补array_search和in_array,但无法让任何东西工作。

希望得到的结果是,在array1的键中找到array2的值时,匹配的键值对的值将除以2。

代码语言:javascript
复制
$array1 = Array ( 
     [shore_anchor] => 0 
     [inter_anchor] => 0 
     [offshore_anchor] => 0 
     [offshore_gear] => 5  
     [shore_infrastructure] => 0  
     [inter_infrastructure] => 0  
     [coastal_vessel] => 5  
     [offshore_vessel] => 5 );
$array2 = Array ( [0] => infrastructure [1] => anchor );

foreach($array2 as $key1 => $val1){
    foreach ($array1 as $key => $value) {
      if ($key1 == $key){
        echo "$key => $value <br />";
  }}}}
EN

回答 2

Stack Overflow用户

发布于 2015-06-23 06:58:32

我认为这可能是它,但欢迎评论或效率。

代码语言:javascript
复制
$result = array_flip($array2);

foreach($result as $needle => $val1){
    foreach ($array1 as $haystack => $val2) {
        if (strpos($haystack, $needle) !== false) {
            echo "$haystack => $val2\n";
        }
    }
}
票数 0
EN

Stack Overflow用户

发布于 2015-06-23 07:34:47

一种方法:

代码语言:javascript
复制
<?php
$array1 = Array(
        'shore_anchor'=>0,
        'inter_anchor'=>0,
        'offshore_anchor'=>0,
        'offshore_gear'=>5,
        'shore_infrastructure'=>0,
        'inter_infrastructure'=>0,
        'coastal_vessel'=>5,
        'offshore_vessel'=>5
);

$array2 = Array(
        '0'=>'infrastructure',
        '1'=>'anchor'
);


foreach ($array1 as $key=>$value){
    $x = explode('_',$key);

    if (in_array($x[0],$array2) || in_array($x[1],$array2)){
        echo "$key => $value <br />";
    }
}

// for PHP 5.6.0 +



$match = '#' . implode('|',$array2) . '#';


$x = array_filter($array1,function ($key) use ($match){
    return preg_match($match,$key);
},ARRAY_FILTER_USE_KEY);


foreach ($x as $key=>$value){

    echo "$key => $value <br />";
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30990944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档