php – 如何使用比较2个数组的true / false值返回数组?
发布时间:2020-12-13 18:20:41 所属栏目:PHP教程 来源:网络整理
导读:我试图生成数组作为比较2阵列的结果:第一个数组有更多的元素,如: array1: { 0 = "car1" 1 = "car2" 2 = "car3" 3 = "car4" 4 = "car5"} 和第二个数组没有所有元素: array2: { 0 = "car1" 1 = "car4" 2 = "car5"} 因此,所有可能的类别(array1)和分配给post
我试图生成数组作为比较2阵列的结果:第一个数组有更多的元素,如:
array1: { 0 => "car1" 1 => "car2" 2 => "car3" 3 => "car4" 4 => "car5" } 和第二个数组没有所有元素: array2: { 0 => "car1" 1 => "car4" 2 => "car5" } 因此,所有可能的类别(array1)和分配给post(array2)的类别(它是一个WordPress的东西). result_array: { "car1": true,"car2": false,"car3": 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |