我一直在努力将这两个阵列放在一起,我想知道你是否愿意在这里帮忙。
这是我的array1
$array1 = array('Name', 'Code', 'Email');
这是我的array2
$array2 = array(
'user1', '12345', 'user1@example.com',
'user2', '12345', 'user2@example.com',
'user3', '12345', 'user3@example.com',
'user4', '12345', 'user4@example.com',
'user5', '12345', 'user5@example.com',
'user6', '12345', 'user6@example.com'
);
我正在尝试创建一个新数组,其中索引是array1的元素('Name','code','email')...所以它最终会如下所示:
$array3 = (
'Name'=>'user1', 'Code'=>'12345', 'Email'=>'user1@example.com'
'Name'=>'user2', 'Code'=>'12345', 'Email'=>'user2@example.com'
'Name'=>'user3', 'Code'=>'12345', 'Email'=>'user3@example.com'
'Name'=>'user4', 'Code'=>'12345', 'Email'=>'user4@example.com'
'Name'=>'user5', 'Code'=>'12345', 'Email'=>'user5@example.com'
'Name'=>'user6', 'Code'=>'12345', 'Email'=>'user6@example.com'
);
所有这一切的原因是通过json将其发送到jquery响应以将其呈现给表。
你能帮帮我吗?提前致谢。
答案 0 :(得分:2)
您可以array_map
循环播放$array2
并使用array_combine
在每个循环中指定$array1
作为键
$array1 = array('Name', 'Code', 'Email');
$array2 = array(
array('user1', '12345', 'user1@example.com'),
array('user2', '12345', 'user2@example.com'),
array('user3', '12345', 'user3@example.com'),
array('user4', '12345', 'user4@example.com'),
array('user5', '12345', 'user5@example.com'),
array('user6', '12345', 'user6@example.com')
);
$results = array_map(function ($n) use($array1) {
return array_combine($array1, $n);
}, $array2 );
echo "<pre>";
print_r( $results );
echo "</pre>";
这将导致:
Array
(
[0] => Array
(
[Name] => user1
[Code] => 12345
[Email] => user1@example.com
)
[1] => Array
(
[Name] => user2
[Code] => 12345
[Email] => user2@example.com
)
[2] => Array
(
[Name] => user3
[Code] => 12345
[Email] => user3@example.com
)
[3] => Array
(
[Name] => user4
[Code] => 12345
[Email] => user4@example.com
)
[4] => Array
(
[Name] => user5
[Code] => 12345
[Email] => user5@example.com
)
[5] => Array
(
[Name] => user6
[Code] => 12345
[Email] => user6@example.com
)
)
答案 1 :(得分:1)
假设你有数组和数组:
$array1 = array('Name', 'Code', 'Email');
$array2 = array(
['user1', '12345', 'user1@example.com'],
['user2', '12345', 'user2@example.com'],
['user3', '12345', 'user3@example.com'],
['user4', '12345', 'user4@example.com'],
['user5', '12345', 'user5@example.com'],
['user6', '12345', 'user6@example.com']
);
$array3 = [];
foreach($array2 as $a2) {
$array3[] = array_combine ($array1 , $a2 );
}
var_dump($array3);
那会有效。否则,你需要一个不同的方法,如:
$array1 = array('Name', 'Code', 'Email');
$array2 = array(
'user1', '12345', 'user1@example.com',
'user2', '12345', 'user2@example.com',
'user3', '12345', 'user3@example.com',
'user4', '12345', 'user4@example.com',
'user5', '12345', 'user5@example.com',
'user6', '12345', 'user6@example.com'
);
$array3 = [];
$i = 0;
foreach($array2 as $a2) {
$i++;
$tempArray[] = $a2;
if($i % 3 == 0) { //if is the 3rd element, combine then reset tempArray
$array3[] = array_combine ($array1 , $tempArray );
$tempArray = [];
}
}
var_dump($array3);
答案 2 :(得分:0)
您可以修改现有的$array2
:
array_walk($array2, function(&$v, $k, $array) {
$v = array_combine($array, $v);
}, $array1);