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

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 如何使用比较2个数组的true / false值返回数组?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图生成数组作为比较2阵列的结果:第一个数组有更多的元素,如:
array1: {
    0 => "car1"
    1 => "car2"
    2 => "car3"
    3 => "car4"
    4 => "car5"
}

和第二个数组没有所有元素:

array2: {
    0 => "car1"
    1 => "car4"
    2 => "car5"
}

因此,所有可能的类别(array1)和分配给post(array2)的类别(它是一个wordpress的东西).
我试图比较那些数组(但没有使用array_diff()函数,它给了我元素值而不是boolean)并得到结果为true / false.所以我想比较数组的每个值并生成数组映射,或者使用array_combine()函数获取类似的数组:

result_array: {
    "car1": true,"car2": false,"car3": false
}

等等
输出数组具有所有类别及其结果(true,false)非常重要.
有没有简单方法可以做到或者它可能是我可以使用的功能

数组很有趣!

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

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

解决方案使用array_intersect查找两个数组中存在的值,然后使用array_valuesarray_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

脚本宝典总结

以上是脚本宝典为你收集整理的php – 如何使用比较2个数组的true / false值返回数组?全部内容,希望文章能够帮你解决php – 如何使用比较2个数组的true / false值返回数组?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。