dpjhq00684 2016-02-08 16:00
浏览 97
已采纳

两个数组之间的php数组匹配

$a = array('one'=> val, 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten'); 
$b = array('four'=> val, 'one'=> val, 'eight'=> val, 'five'=> val) 

I have two arrays as shown above.

need result like this:

will output:

'one' => val
'two' => 0
'three' => 0
'four' => val
'five' => val
'six' => 0
'seven' => 0
'eight' => val
'nine' => 0
'ten'  => 0

Is there easy way to do this?

any help would be good

  • 写回答

1条回答 默认 最新

  • dsdzz04802 2016-02-08 16:18
    关注

    Actually array_intersect does something like this. It creates an new array out of these 2 arrays, only holding the values which are available in both arrays.

    http://php.net/manual/en/function.array-intersect.php

    array_intersect() returns an array containing all the values of array1 that are present in all the arguments. Note that keys are preserved.

    edit: You should rather use array-diff,

    Compares array1 against one or more other arrays and returns the values in array1 that are not present in any of the other arrays.

    http://php.net/manual/en/function.array-diff.php

    The code for your output described above would be something like:

    <?php
    $a = array('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten'); 
    $b = array('four', 'one', 'eight', 'five');
    
    //Find matches and not matches
    $matches = array_intersect($a, $b);
    $dontmatches = array_unique(array_merge($a, $b));
    
    //Set all dont matches to 0
    for($i = 0; $i<count($dontmatches);$i++)
        $dontmatches[$i] = 0;
    
    $final = array_merge($matches, $dontmatches);
    print_r($final);
    ?>
    

    I used both described functions from above plus the following:

    http://php.net/manual/en/function.array-unique.php

    http://php.net/manual/en/function.array-merge.php

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 鼠标右键,撤销删除 复制 移动,要怎样删除
  • ¥15 使用MATLAB进行余弦相似度计算加速
  • ¥15 服务器安装php5.6版本
  • ¥15 我想用51单片机和数码管做一个从0开始的计数表 我写了一串代码 但是放到单片机里面数码管只闪烁一下然后熄灭
  • ¥20 系统工程中,状态空间模型中状态方程的应用。请猛男来完整讲一下下面所有问题
  • ¥15 我想在WPF的Model Code中获取ViewModel Code中的一个参数
  • ¥15 arcgis处理土地利用道路 建筑 林地分类
  • ¥20 使用visual studio 工具用C++语音,调用openslsx库读取excel文件的sheet问题
  • ¥100 寻会做云闪付tn转h5支付链接的技术
  • ¥15 DockerSwarm跨节点无法访问问题