[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: цикл с исключениями
kap
Помогите разобраться
есть excel файл такого вида user posted image
надо вытащить в массив значения из ячеек А1-А28, при этом чтобы в этот массив не попадали пустые ячейки А7, А14, А21
С файлом я разбираюсь с помощью phpExcel, пробовал делать так,
$j = 1;
for ($i=0; $i<28; $i++) {
$a[i] = $objPHPExcel->getActiveSheet()->getCell("A$j")->getValue();
echo "$a[i]<br>";
$j ++;
}

но в массив загоняются значения всех ячеек. Как можно сделать исключение ненужных ячеек?
Сильно не пинайте, только начинаю изучение.
Winston
Свернутый текст
$j = 1;
for ($i=0; $i<28; $i++) {
$a[$i] = trim($objPHPExcel->getActiveSheet()->getCell("A$j")->getValue());
if(!empty($a[$i]))
echo "$a[i]<br>";
$j++;
}
kap
пишет syntax error
а цикл for прогоняет все значения только от и до, или может в нем можно написать как-то кроме $i=7, $i=14, $i=21 ?
Winston
Цитата (kap @ 16.03.2013 - 16:32)
пишет syntax error

В условии IF нужно добавить еще одну круглую скобку )
kap
но в этом случае элементу $a[6] все равно присвоится пустое значение, можно ли сделать так, чтобы пустые клетки вообще в массив не попадали?
Winston
Цитата (kap @ 16.03.2013 - 17:18)
но в этом случае элементу $a[6] все равно присвоится пустое значение, можно ли сделать так, чтобы пустые клетки вообще в массив не попадали?

После IF добавь
else
unset($a[$i]);




Спустя 1 минута, 51 секунда Winston написал(а):
А лучше так напиши
$j = 1;
$a = array();
for ($i=0; $i<28; $i++) {
$tmp = trim($objPHPExcel->getActiveSheet()->getCell("A$j")->getValue());
if(!empty($tmp))
{
$a[$i] = $tmp;
echo "$a[i]<br>";
}
$j++;
}

Чтобы небыло пробелов в индексах $a;
kap
да, я уж тоже сделал через промежуточную переменную, только если вывожу массив как print_r ($a); то получается,
Array (
[0] => 4
[1] => 73.3
[2] => 0.8
[3] => 65.5
[4] => 5.6
[5] => 49.6
[7] => 8.2
[8] => 42.7
[9] => 92
[10] => 18.2
[11] => 43.5
[12] => 4.4
[14] => 35.8
[15] => 35.2
[16] => 123
[17] => 0.5
[18] => 16.6
[19] => 13.7
[21] => 12.9
[22] => 27.5
[23] => 85.9
[24] => 9.6
[25] => 18
[26] => 12
[27] => 30.5 )

совсем нету индексов 6, 13, 22
(на значения не обращайте внимания, у меня в экселе другие цифры)
kap
кажется разобрался
вот так сделал, индексы не теряются, заполняются подряд все значения
$tmp = trim($objPHPExcel->getActiveSheet()->getCell("B$j")->getValue());
if(!empty($tmp)){
$a[$i] = $tmp;
$j ++;}
else {
$j = $j+1;
$a[$i] = trim($objPHPExcel->getActiveSheet()->getCell("B$j")->getValue());
$j = $j+1;
}
kap
спасибо за if(!empty)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.