如何在PHP中将单个数组连接到多维数组?

时间:2018-07-22 10:31:51

标签: php arrays join

所以可以说,我的First Array具有这样的值

第一个数组

$first : [Array
(
    [0] => CreationDate
    [1] => OrderNumber
    [2] => OrderDate
    [3] => InvoiceNumber
)

第二个数组,其值如下: $ Second:[Array

(
    [0] => 2011-08-09
    [1] => 123123
    [2] => 2011-08-09
    [3] => XXAXXA
)

我想要的是得到这样的输出:

$Join : [Array
(
    [CreationDate] => 2011-08-09
    [OrderNumber] => 123123
    [OrderDate] => 2011-08-09
    [InvoiceNumber] => XXAXXA

)

*注意到,我已经使用此嵌套的foreach获得结果

$join = array();

    foreach ($names as $key => $value) {
    foreach ($values as $key2) {      
        $join[][$value] = $key2;
    }

}

但它返回致命错误:允许的内存大小为134217728字节,已用尽(试图分配29364224字节)

所以,如果你们有更有效的方法,我会敞开心to知道 谢谢你们

2 个答案:

答案 0 :(得分:1)

您可以使用array_combine并将第一个数组用作键,将第二个数组用作值:

<MenuPrincipal onModalToggle={this.props.onModalToggle} />

输出:

$a = [
    0 => "CreationDate",
    1 => "OrderNumber",
    2 => "OrderDate",
    3 => "InvoiceNumber"
];
$b = [
    0 => "2011-08-09",
    1 => "123123",
    2 => "2011-08-09",
    3 => "XXAXXA"

];

print_r(array_combine($a, $b));

Demo

答案 1 :(得分:0)

$join = array();

foreach ($names as $key => $value) {
    $join[$value] = $values[$key];
}

其中$names$values是您的数组。

编辑:

由于内存不足,我建议您取消设置原始数组。

$join = array();

foreach ($First as $key => $value) {
    $join[$value] = $Second[$key];
    unset($First[$key]);
    unset($Second[$key]);
}

并使用array_keys($join)获取第一个数组,并使用array_values($join)获取第二个数组。