php – 处理数组以始终包含来自另一个数组的值的键(和顺序)
发布时间:2020-12-13 16:15:41 所属栏目:PHP教程 来源:网络整理
导读:我有以下’key’数组:(数组1) Array( [0] = first_name [1] = surname [2] = position [3] = age) 此数组应确定数组2中应存在的键和键/值的顺序.因此,在完美的世界中,数组2将如下所示: Array( [0] = Array ( [first_name] = James [surname] = Johnstone [p
我有以下’key’数组:(数组1)
Array ( [0] => first_name [1] => surname [2] => position [3] => age ) 此数组应确定数组2中应存在的键和键/值的顺序.因此,在完美的世界中,数组2将如下所示: Array ( [0] => Array ( [first_name] => James [surname] => Johnstone [position] => Striker [age] => 42 ) [1] => Array ( [first_name] => Al [surname] => MacLean [position] => Defender [age] => 22 ) ... ) 我遇到的问题是在下面的示例数组中.有时: a)数组2中键的顺序与数组1不同 Array ( [0] => Array ( [position] => Defender [first_name] => James [surname] => McDonald ) [1] => Array ( [position] => Striker [first_name] => Ben [surname] => Lailey ) ... ) 我想要一些帮助创建一个PHP函数,它将采用一个’格式错误’的数组2,如上面的那个,并将其转换为应该如何:按照数组1定义的顺序,并添加任何缺少的键成为’正确’如此: Array ( [0] => Array ( [first_name] => James [surname] => McDonald [position] => Defender [age] => ) [1] => Array ( [first_name] => Ben [surname] => Lailey [position] => Striker [age] => ) ... ) 此示例中使用的密钥是任意的,可能在阵列1中添加,删除或重新排序新密钥,我需要阵列2以尊重阵列1. 先感谢您. 解决方法
一个简单的实现:
// Pass in an array of keys,and an array of arrays function cleanArray($keys,$arrays) { // Create an empty container for our final output $final = array(); // Loop through array of arrays foreach($arrays as $a) { // Create empty value for current item $next = array(); // Loop through keys,in order foreach($keys as $k) { // Assign next key and value if we have it,or a blank string if we don't $next[$k] = isset($a[k]) ? $a[k] : ''; } // Add current item to output $final[] = $next; } // Return final values,each item now having its keys ordered and normalized return $final; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |