Как я могу сделать ассоциативный массив из каждых двух смещений нормального массива? - PullRequest
1 голос
/ 04 марта 2012

У меня есть массив парных значений (имя и адрес электронной почты), и я пытаюсь создать ассоциативный массив из обычного массива для каждых двух смещений.Пример:

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]
    );
}

Это дает мне эту ошибку:

Неустранимая ошибка: допустимый объем памяти 134217728 байт исчерпан (попытался выделить 32 байта) в C: \ xampp \ htdocs \ array.php onстрока 20

Я что-то не так делаю?

Ответы [ 2 ]

4 голосов
/ 04 марта 2012

есть проблема в вашем цикле for ... она должна быть

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

в настоящее время она не увеличивается и, следовательно, бесконечный цикл

2 голосов
/ 04 марта 2012

Вы можете использовать array_chunk .

$newArray = array_chunk($csvArray, 2);
...