|
|
|
| Всем привет.
Подскажите как можно разбить массив, созданный из CSV на части, по двум пустым элементам массива.
Array
(
[0] => value;value;value
[1] => value;value;value
[2] =>
[3] =>
[4] => value;value;value
[5] => value;value;value
[6] => value;value;value
[7] => value;value;value
...
)
|
На выходе должно получиться два или больше массивов
Ничего придумать не могу.
Подскажите
Спасибо | |
|
|
|
|
|
|
|
для: ZeeG
(08.02.2008 в 15:38)
| |
<?php
$result = array(array());
$flag = false;
foreach($array as $row)
{
if(!$row)
{
if($flag)
{
$result[] = array();
}
$flag = !$flag;
}
else
{
$result[count($result) - 1][] = $row;
}
}
?>
|
На выходе - многомерный массив $result, содержащий в качестве элементов блоки первого, которые были разделены двумя пустыми элементами. | |
|
|
|
|
|
|
|
для: Shiva
(08.02.2008 в 16:47)
| | Спасибо за помощь, но у меня тут ошибка вылезла
Fatal error: [] operator not supported for strings in z:\home\localhost\www\upload\test.php on line 36
$result[count($result)-1][] = $row;
|
Чтобы это могло быть? | |
|
|
|
|
|
|
|
для: ZeeG
(08.02.2008 в 17:15)
| | Последним элементом $result оказалась строка. Прикрепите test.php целиком. | |
|
|
|
|
|
|
|
для: Shiva
(08.02.2008 в 17:18)
| | еще бы хоть примерно знать куда прикрепить.
Я загружаю file.CSV
$result = $array;// array(array()); // ВОТ ЭТО МЕСТО НЕ ПОНЯТНО
|
| |
|
|
|
|
|
|
|
для: ZeeG
(08.02.2008 в 17:35)
| | $result = $array;// array(array()); // ВОТ ЭТО МЕСТО НЕ ПОНЯТНО
Так из-за этого у вас ошибка и возникла. Я здесь создаю массив $result, куда буду складывать результаты. И добавляю пустой же в качестве первого элемента для первого блока (до всяких пустых строк).
А вы сделали в $result копию одномерного массива $array. Естественно, это не работает.
ps. Извините, но вы всегда произвольным образом заменяете те строчки кода, что вам непонятны? | |
|
|
|
|
|
|
|
для: Shiva
(08.02.2008 в 17:49)
| | деление не происходит.
Вот что получается
Array
(
[0] => Array
(
[0] => value;value;value
[1] => value;value;value
[2] =>
[3] =>
[4] => value;value;value
[5] => value;value;value
[6] => value;value;value
[7] => value;value;value
...
)
)
|
Извините если что, я просто решил попробывать, что получилось бы заменив часть Вашего кода. Но Вы правы ч действительно не понимаю его. | |
|
|
|
|
|
|
|
для: ZeeG
(08.02.2008 в 18:15)
| | У меня работает, при условии, что $array[2] и $array[3] - пустые строки. Что у вас в этих пустых элементах? Судя по всему, для них не действительно условие if(!$row).
Попробуйте поставить перед
удаление пустых символов:
| |
|
|
|
|
|
|
|
для: Shiva
(08.02.2008 в 18:29)
| | Спасибо Вам большое за помощь и, что самое главное, за терпение!!! | |
|
|
|