php比较数组元素,PHP比较数组元素整体

例如我有两个数组

$arrayA = [0=>"A", 1=>"B", 2=>"C", 3=>"C", 4=>"E", 5=>"F"];

$arrayB = [0=>"B", 1=>"C"];

$same = array_intersect($arrayA, $arrayB);

我会得到$same的结果

1 => B

2 => C

3 => C

相反,我想要实现的只是获得

1 => B

2 => C

更新

在尝试了amow和Ekin提供的答案之后,我意识到该方法存在局限性.如果我的数组采用以下格式,

$arrayA = [0=>"A", 1=>"B", 2=>"C", 3=>"B", 4=>"C", 5=>"E", 6=>"F"];

$arrayB = [0=>"B", 1=>"C", 2=>"B", 3=>"C"];

$same = array_unique(array_intersect($arrayA, $arrayB));

$same的结果仍然是

1 => B,

2 => C

我希望得到的地方

1 => B,

2 => C,

3 => B,

4 => C

解决方法:

array_intersect(array_unique($arrayA),array_unique($arrayB))

希望这会有所帮助.

更新解决方案:

$arrayA = [0=>"A", 1=>"B", 2=>"C", 3=>"B", 4=>"C", 5=>"E", 6=>"F"];

$arrayB = ["B","C","B","C"];

$filter = $arrayB;

$same = [];

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

$bIndex = array_search($value, $filter);

if($bIndex !== false){

$same[$key] = $value;

unset($filter[$bIndex]);

}

}

var_dump($same);

标签:arrays,php,algorithm

来源: https://codeday.me/bug/20191026/1937708.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值