array_combine空值

时间:2010-08-17 13:45:22

标签: php

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

数组([1] => ID ...)

第二只是少数因素:

Array ( [1] => 63 [2] => REF213211 [3] => aaa [7] => Warszawa [8] => Wola [12] => 100 [14] => 1 [15] => 100 [35] => 1 ) 

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

请帮忙

5 个答案:

答案 0 :(得分:3)

示例:

$header = ["a", "b", "c"];
$values = array_combine($header, array_fill(0,count($header),null));

结果:

array(3) {
  'a' => NULL
  'b' => NULL
  'c' => NULL
}

答案 1 :(得分:2)

如果键是相同的(似乎在你的情况下),它很简单:

$combined_array =  array_combine( array_values($array1), array_values($array2) );

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

$temporary = array_intersect_key( $array1, $array2 );
$combined_array = array_combine( array_values($temporary), array_values($array2) );

此致

RBO

答案 2 :(得分:1)

您可以像这样使用简单的foreach

$combined = array();
foreach ($keys as $index => $key) {
    $combined[$key] = isset($values[$index]) ? $values[$index] : null;
}

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

答案 3 :(得分:0)

$newarray = Array();
foreach( $columnarray as $key => $columnname )
{
if ( isset($secondarray[$key]) ) $newarray[$columnname] = $secondarray[$key];
}

答案 4 :(得分:0)

如果你想得到一个哈希作为结果,迭代两个数组,直到完全遍历最短的数组并将键/值对放入哈希表。