【问题标题】:How can I make an associative array from every two offsets of a normal array?如何从普通数组的每两个偏移量中创建一个关联数组?
【发布时间】:2012-03-21 22:58:18
【问题描述】:

我有一个成对值(姓名和电子邮件)数组,我正在尝试从一个普通数组中为每两个偏移量创建一个关联数组。示例:

Array
 (
    [0] => joe
    [1] => joe@gmail.com
    [2] => bill
    [3] => bill@gmail.com
    [4] => kyle
    [5] => kyle@gmail.com
    [6] => matt
    [7] => matt@gmail.com
    [8] => chris
    [9] => chris@gmail.com
)

我想为每个 [$i][$i+1] 创建一个关联数组,所以它看起来像:

Array
 (
    [0] => Array
        (
            [name] => joe
            [email] => joe@gmail.com
        )
    [1] => Array
        (
            [name] => bill
            [email] => bill@gmail.com
        )
 )

我试过了:

$num = count($csvArray);
for ($i=0; $i < $num; $i+2) {
    $newArray[] = array(
        'name' => $csvArray[$i],
        'email' => $csvArray[$i+1]
    );
}

它给了我这个错误:

致命错误:第 20 行 C:\xampp\htdocs\array.php 中允许的内存大小为 134217728 字节已用尽(尝试分配 32 字节)

我是不是做错了什么?

【问题讨论】:

  • array.php 文件的第 20 行是哪一行?

标签: php arrays csv associative-array


【解决方案1】:

你的for循环有问题……应该是

for($i=0; $i < $num; $i=$i+2)

目前它没有增加,因此是无限循环

【讨论】:

    【解决方案2】:

    您可以使用array_chunk

    $newArray = array_chunk($csvArray, 2);
    

    【讨论】:

    • 如果你问我完美的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-11
    • 2017-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多