首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >array_combine空值

array_combine空值
EN

Stack Overflow用户
提问于 2010-08-17 21:45:22
回答 5查看 3.4K关注 0票数 0

一个数组有35个元素(mysql列名)

数组(1个=> ID...)

其次是几个元素:

代码语言:javascript
复制
Array ( [1] => 63 [2] => REF213211 [3] => aaa [7] => Warszawa [8] => Wola [12] => 100 [14] => 1 [15] => 100 [35] => 1 ) 

我需要将第一个数组组合为第二个数组的键

请帮帮忙

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-08-17 21:49:23

您可以使用如下所示的简单foreach

代码语言:javascript
复制
$combined = array();
foreach ($keys as $index => $key) {
    $combined[$key] = isset($values[$index]) ? $values[$index] : null;
}

这会将$keys中的键与$values中的值组合在一起。如果在$values中没有相应的值,则会导致null

票数 1
EN

Stack Overflow用户

发布于 2018-09-06 18:24:43

示例:

代码语言:javascript
复制
$header = ["a", "b", "c"];
$values = array_combine($header, array_fill(0,count($header),null));

结果:

代码语言:javascript
复制
array(3) {
  'a' => NULL
  'b' => NULL
  'c' => NULL
}
票数 4
EN

Stack Overflow用户

发布于 2010-08-17 21:57:32

如果密钥是相同的(看起来在你的情况下),这很简单:

代码语言:javascript
复制
$combined_array =  array_combine( array_values($array1), array_values($array2) );

如果第一个数组的键交集比第二个数组多,您可以为array1生成一个临时数组,该数组只包含array2 (键的交集)中的这些键:

代码语言:javascript
复制
$temporary = array_intersect_key( $array1, $array2 );
$combined_array = array_combine( array_values($temporary), array_values($array2) );

问候

rbo

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3503066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档