php – 将数组与标题组合 – 获取空数组

我正在尝试创建一个新数组,其中键将是来自第一个数组的标题,值将是所有其他数组,但我得到一个空数组作为结果.

这是我的初始数组

$reader = \Asan\PHPExcel\Excel::load('test.xls', function(\Asan\PHPExcel\Reader\Xls $reader){});

foreach ($reader as $row)
{
    print_r($row);
}


Array
(
    [0] => Phone
    [1] => Sum
    [2] => Name
    [3] => Something else
)
Array
(
    [0] => +1 555123456
    [1] => 50.00
    [2] => Johnny Doe
    [3] => 100.50
)
Array
(
    [0] => 911
    [1] => 20.12
    [2] => Eli the Computer Guy
    [3] => 99.99
)

我试着像这样创建新的数组

$row = 1; // header row
foreach ($reader as $row)
{
    if ($row == 1)
    {
        $headers = $row;
    }
    else
    {
        $new_array[] = [
            $headers => $row;
        ]
    }

    print_r($row); // prints empty array
}

我希望结果数组看起来像这样

Array
(
    [0] => Array
        (
            [Phone] => +1 555123456
            [Sum] => 50.00
            [Name] => Johnny Doe
            [Something else] => 100.50
        )

    [1] => Array
        (
            [Phone] => 911
            [Sum] => 20.12
            [Name] => Eli the Computer Guy
            [Something else] => 99.99
        )
)

解决方法:

您还可以使用array_maparray_combine

$headers = array_shift($arrays);
$result = array_map(function($x) use ($headers){
    return array_combine($headers, $x);
}, $arrays);

Demo

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...