Hi我有两个数组,第一个看起来像这样:
array(
00000 => array(
0 => 123,
1 => 456,
2 => 789,
)
11111 => array(
0 => 987,
1 => 654,
2 => 321,
)
我的第二个数组是这样的:
array(
00000 => 'apples',
11111 => 'bananas',
)
我试图做的是将第一个数组中的密钥与第二个数组中密钥进行匹配,如果它们匹配,则取第一个数组的密钥对值数组的值,使它们成为全新数组的密钥,第二个阵列的值使它们成为新数组的值。类似这样的东西:
array(
123 => 'apples',
456 => 'apples',
789 => 'apples',
987 => 'bananas',
654 => 'bananas',
321 => 'bananas',
)
任何帮助,谢谢!
所以我假设u有2个数组(并且您固定了第二个数组,使其具有唯一密钥)
$array3 = array (); //for the result
foreach ($array1 as $seg)
{
foreach ($seg as $key)
{
$array3[$key] = $array2[$seg];
}
}
试试这个
$array = array(
"00000" => array(
0 => 123,
1 => 456,
2 => 789,
),
"11111" => array(
0 => 987,
1 => 654,
2 => 321,
)
);
$arr = array(
"00000" => 'apples',
"11111" => 'bananas',
);
$array3 = array();
foreach ($array as $keyas => $segs)
{
foreach ($segs as $key)
{
$array3[$key] = $arr[$keyas];
}
}
echo "<pre>";
print_r($array3);
unset($array3);
输出:
Array
(
[123] => apples
[456] => apples
[789] => apples
[987] => bananas
[654] => bananas
[321] => bananas
)
嗨,实际上我在php.net上做了一些研究,找到了一个解决方案:
$array3 = array_keys($array1);
$array4 = array_keys($array2);
$array5 = array_intersect($array3, $array4)
$array6 = array();
foreach($array5 as $id) {
foreach($array1[$id] as $userId) {
$array6[$userId] = $array2[$id]
}
}
可能生成了比所需更多的数组,但在将值分配给新数组之前,这可以工作并匹配两个数组的键。
感谢所有的回答和帮助!