连接两个不同的数组,这些数组可以具有相同的ID但不同的值?

时间:2012-01-13 18:40:52

标签: php

阵列-1
ID名称
1 ABC 2 DEF
3 GHI
4 PQR
5 XYZ

ARRAY2
ID名称
1 abc
3 ghi
5 xyz

RESULT
ID NAMES名称
1 ABC abc
2 DEF -
3 GHI ghi
4 PQR -
5 XYZ xyz

4 个答案:

答案 0 :(得分:1)

问题不是很明确,但可能你想要这个:

$a=array("1" => "A", "2" => "B", "3" => "C", "4" => "D");
$b=array("1" => "a", "2" => "a", "3" => "a");
$ab = array();
foreach($a as $key => $value) {
   $ab[$key] = array($a[$key], $b[$key]);
}
print_r($ab);

<强>更新

Array
(
    [1] => Array
        (
            [0] => A
            [1] => a
        )
    [2] => Array
        (
            [0] => B
            [1] => a
        )
    [3] => Array
        (
            [0] => C
            [1] => a
        )
    [4] => Array
    (
        [0] => D
        [1] => 
    )
)

答案 1 :(得分:0)

两个数组$ a和$ b

$n = max(count($a), count($b))
for ($i=0; $i<$n; $i++) {
    echo "$i\t";
    echo ! empty($a[$i]) ? $a[$i] : '';
    echo "\t";
    echo ! empty($b[$i]) ? $b[$i] : '';
    echo "\n";
}

编辑,或者如果要创建新数组“ret”

$ret = array();
$n = max(count($a), count($b))
for ($i=0; $i<$n; $i++) {
    $ret[] = array(
        "id" => $i,
        "a" => ! empty($a[$i]) ? $a[$i] : '',
        "b" => ! empty($b[$i]) ? $b[$i] : ''
    );
}

答案 2 :(得分:0)

我发现解决方案存在问题:

  • 是否有可能Array-1缺少Array-2的某些键?

所以我建议一些更复杂的解决方案:

$array_out = array();
$all_keys = array_unique(array_merge(array_keys($array1), array_keys($array2)));

foreach($all_keys as $key)
{
    $array_out[$key] = array(

           'UPPER' => array_key_exists($key, $array1) ? $array1[$key] : null, 
           'lower' => array_key_exists($key, $array2) ? $array2[$key] : null
    );
}

答案 3 :(得分:0)

<html>
<nada nada>
<body>
<nada nada>
<table>
<?php
foreach ($array1 as $k=>$v) {
  $vv=isset($array2[$k])?$array2[$k]:'--';
?>
<tr>
<td><?php echo $k; ?></td>
<td><?php echo $v; ?></td>
<td><?php echo $vv; ?></td>
</tr>
<?php
}
?>
</table>
<nada nada>
</body></html>