我试图生成数组作为比较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)非常重要.
有没有简单的方法可以做到或者它可能是我可以使用的功能?
数组很有趣!
我想出了这个作为个人挑战,它不使用循环,过滤器或地图.
此解决方案使用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
原文地址:https://www.jb51.cc/php/135467.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。