php 数组值为false,php – 如何使用比较2个数组的true / false值返回数组?

数组很有趣!

PHP有一个TON的数组函数,所以有很多潜在的解决方案.

我想出了这个作为个人挑战,它不使用循环,过滤器或地图.

此解决方案使用array_intersect查找两个数组中存在的值,然后使用array_values和array_fill_keys将它们转换为填充为TRUE或FALSE的关联数组,最后使用array_merge将它们组合到一个数组中:

$array1 = array( 0 => "car1", 1 => "car2", 2 => "car3", 3 => "car4", 4 => "car5");

$array2 = array( 0 => "car1", 1 => "car4", 2 => "car5" );

// Find all values that exist in both arrays

$intersect = array_intersect( $array1, $array2 );

// Turn it into an associative array with TRUE values

$intersect = array_fill_keys( array_values($intersect), TRUE );

// Turn the original array into an associative array with FALSE values

$array1 = array_fill_keys( array_values( $array1 ), FALSE );

// Merge / combine the arrays - $intersect MUST be second so that TRUE values override FALSE values

$results = array_merge( $array1, $intersect );

var_dump($results);结果是:

array (size=5)

'car1' => boolean true

'car2' => boolean false

'car3' => boolean false

'car4' => boolean true

'car5' => boolean true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值