Php 数组_combine with key只有数组1中的一个值和数组2中的多个值
我有两个阵列: 数组1我希望它是数组中的一个键(可以复制):Php 数组_combine with key只有数组1中的一个值和数组2中的多个值,php,arrays,Php,Arrays,我有两个阵列: 数组1我希望它是数组中的一个键(可以复制): Array ( [0] => id [1] => user_id [2] => firstname ) Array ( [0] => 363 [1] => 363 [2] => Omotayo ) Array ( [0] => 167
Array
(
[0] => id
[1] => user_id
[2] => firstname
)
Array
(
[0] => 363
[1] => 363
[2] => Omotayo
)
Array
(
[0] => 167
[1] => 167
[2] => Shafraaz
)
这是我的数组2,我想成为数组_combine中的值:
Array
(
[0] => id
[1] => user_id
[2] => firstname
)
Array
(
[0] => 363
[1] => 363
[2] => Omotayo
)
Array
(
[0] => 167
[1] => 167
[2] => Shafraaz
)
现在的挑战是,我有两个阵列,第一个只有一个阵列,第二个阵列有两个内部阵列。我想要成为array_combine中的键(重复)的第一个数组。我的愿望输出如下:
Array
(
[id] => 363
[user_id] => 363
[firstname] => Omotayo
)
Array
(
[id] => 167
[user_id] => 167
[firstname] => Shafraaz
)
只是想知道有没有办法完成这项任务?谢谢你的建议
谢谢为什么不在
$array2
的每个内部数组上运行array\u combine呢
$final = array();
foreach($array2 as $array) {
$final[] = array_combine($array1, $array);
}
这将使
$final
成为具有正确键/值对的预期数组。请测试此方法,并查看它是否适用于您的环境:
$keys = array("id","user_id","firstname");
$values = array(
array(363,363,"Omotayo"),
array(167,167,"Shafraaz")
);
$out = array();
foreach($values as $ukey=>$user)
{
foreach($user as $key=>$data)
{
$values[$ukey][$keys[$key]] = $data;
unset($values[$ukey][$key]);
}
}
print_r($values);
参考这个不确定你的意思是什么Hemnath??你能解释更多细节吗?这是preg_匹配的输出吗?没有nhahtdh,只有我从csv数组中提取的两个数组,并希望将它们组合在一起。你确定下一个数组中的元素数相等吗?我以前尝试过,但它抛出了一个错误:警告:array_combine():两个参数的元素数应该相等。变量的确切值是多少?比如$array1=…,$array2=…,等等,根据你的问题,你得到这个原因的唯一原因是你是否在迭代$array2的各个元素而不是每个外部数组?下面是我的两个数组$array1=数组(id,user_id,firstname)$array2=数组([0]=>数组('363','363','Omotayo'),[1]=>数组('167','167','Shafraaz'))非常奇怪,它在我的环境中失败,循环:/我的PHP版本是5.5.12。这是个问题吗?