【问题标题】:How to merge array [closed]如何合并数组
【发布时间】:2014-06-11 07:45:05
【问题描述】:

我有两个类似的数组

Array1
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Array2
(
    [0] => a
    [1] => b
    [2] => c
)
i want make 
Array3 Like
(
    [0] => ([0]=>1 [1]=>a)
    [1] => ([0]=>2 [1]=>b)
    [2] => ([0]=>3 [1]=>c)
)

【问题讨论】:

  • 到目前为止你有没有尝试过?
  • 这个问题在 SO 上经常被回答,请先使用搜索...
  • 此外,您还必须确保两个数组的长度相同。或者决定一个规则,当他们不这样做时该怎么做。
  • 我知道合并功能,但我不想要那个

标签: php arrays


【解决方案1】:

这绝对不是最漂亮的方法,但是由于您没有提供任何尝试过的代码,我怀疑有人想在这里为这个问题烦恼:

注意:如 cmets 中所述,您必须确保两个数组的长度相同并自行排序。

$one = array(
    '1',
    '2',
    '3'
);

$two = array(
    'a',
    'b',
    'c'
);

$derp = array();

foreach($one as $key => $val) {
    $derp[] = array(
        $val,
        $two[$key]
    );
}
?>

返回

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => a
        )

    [1] => Array
        (
            [0] => 2
            [1] => b
        )

    [2] => Array
        (
            [0] => 3
            [1] => c
        )

)

【讨论】:

  • 感谢帮助,已解决
【解决方案2】:

使用 SPL 的 MultipleIterator

$arr1 = [1, 2, 3];
$arr2 = ['a', 'b', 'c'];

$mi = new MultipleIterator();
$mi->attachIterator(new ArrayIterator($arr1));
$mi->attachIterator(new ArrayIterator($arr2));
$result = array();
foreach($mi as $details) {
    $result[] = $details;
}
var_dump($result);

【讨论】:

    猜你喜欢
    • 2015-10-22
    • 2014-03-05
    • 2010-09-06
    • 2014-07-28
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多