我有两个阵列,每个阵列大约有50个字段,一个是用户数组,它是从db获得的,看起来像这样(缩写为只有3个字段)
Array( [0] => Array([id] => 1 [email] => email1@hotmail.com [last_name] => Lastname)
[1] => Array([id] => 2 [email] => email2@hotmail.com [last_name] => Lastname2)
);
我的另一个数组是一个字段数组,其中key是字段的名称,value是users表中的字段(也缩短了):
Array([User ID] => id [Last Name] => last_name [Email] => email);
现在,我想生成一个数组来比较两个用户,经过几次foreach我得到了这个数组:
Array([id] => Array([0] => 1 [1] => 2)
[email] => Array([0] => email1@hotmail.com [1] => email2@hotmail.com)
[last_name] => Array([0] => Lastname [1] => Lastname2)
如您所见,最后一个数组包含两个用户的ID,两者的电子邮件等,用于进行比较。但是,您可以看到该顺序与fields数组的名称不对应。我想根据第二个数组的顺序创建第三个数组(即1)id,2)姓氏,3)email)
如何实现?
答案 0 :(得分:0)
<?php
$newArray = array();
$rows = Array(
Array('id' => 1, 'email' => 'email1@hotmail.com', 'last_name' => 'Lastname'),
Array('id' => 2, 'email' => 'email2@hotmail.com', 'last_name' => 'Lastname2')
);
$fields = Array('User ID' => 'id', 'Last Name' => 'last_name', 'Email' => 'email');
foreach (array_values($fields) as $field) {
$newArray[$field] = array();
foreach ($rows as $singleRow) {
$newArray[$field][] = $singleRow[$field];
}
}
var_dump($newArray);
如您所见,我使用了另一个数组进行排序。
答案 1 :(得分:0)
array_merge(array_fill_keys(array('id', 'lastname', 'email'), null)
, $comparison_arrays
);