2014-02-09 2 views
0

Я читаю данные Excel и сохраняю их в многоразмерном массиве php. Я хотел бы напечатать многомерный список массива значений по одному, как указано в ожидаемых из пут ...PHP-код для печати значений многомерных массивов один за другим

Php кода

$sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true); 
$i=0; 
foreach($sheetData as $rec) 
{ 
    for($j=0;$j<4;$j=$j+1) 
    { 
    echo $rec[$i][$j]; 
    } 
    $i=$i+1; 
} 

Actual Out положили:

ничего

var_dump ($ sheetData) показывается как follo ws

массив (4) {[1] => массив (4) {["A"] => строка (10) "имя" ["B"] => строка (9) "фамилия "[" C "] => string (11)" Национальность "[" D "] => строка (6)" Пол "} [2] => массив (4) {[" A "] => строка (5) "AGNI" ["B"] => строка (6) "namera" ["C"] => строка (5) "india" ["D"] => строка (1) "M"} [3] => массив (4) {["A"] => строка (4) "QUEEN" ["B"] => строка (5) "fefar" ["C"] => строка (5) "india" ["D"] => string (1) "M"} [4] => array (4) { ["A"] => строка (7) "MASTER" ["B"] => (5) «patel» [«C»] => строка (5) «Индия» ["D"] => строка (1) "M"}}

Ожидаемый результат:

---------------- 
First Name 
Last Name 
Nationality 
Gender 
----------------- 
AGNI 
NAMERA 
INDIA 
M 
------------------ 
...and so on... 
+3

Можете ли вы 'var_dump ($ sheetData);' и вставить здесь? –

+0

@ user007: array (4) {[1] => array (4) {["A"] => строка (10) "Имя" ["B"] => строка (9) "Фамилия" [ "C"] => string (11) "Национальность" ["D"] => string (6) "Gender"} [2] => array (4) {["A"] => string (5) " AGNI "[" B "] => строка (6)" namera "[" C "] => строка (5)" india "[" D "] => строка (1)" M "} [3] => array (4) {["A"] => string (4) "QUEEN" ["B"] => string (5) "fefar" ["C"] => string (5) "india" ["D "] => string (1)" M "} [4] => array (4) {[" A "] => string (7)" MASTER "[" B "] => строка (5)" patel " ["C"] => string (5) "India" ["D"] => string (1) "M"}} – logan

ответ

2

У вас есть две проблемы здесь ... первое, что вы пытаетесь индексы доступа на $rec, как будто это $sheetData.

Линия foreach($sheetData as $rec) означает «цикл по массиву, и создать переменную $rec каждый раз, который ссылается на текущий элемент в массиве $sheetData. Поэтому, когда вы пытаетесь вызвать индекс 0, 1, 2 и т.д. на $rec, они не существует, что приводит меня ко второму пункту ...

В вашем цикле for вы пытаетесь получить доступ к элементам через свой индекс в виде числа, когда они индексируются строкой (A, B, C , D и т. Д.). Например ...

<?php 

$numeric = array('foo', 'bar'); 
$strings = array('foo' => 'bar'); 

В первом примере, $numeric[0] вернет foo, а $numeric[1] вернется bar. Во втором примере в массиве имеется только один элемент с индексом foo. К нему будет обращаться $strings['foo']. Попытка доступа к $strings[0] вернет уведомление, потому что индекс не существует.

Вы должны делать это так:

<?php 

print "----------" . PHP_EOL; 
foreach($sheetData as $rec) 
{ 
    foreach($rec as $part) 
    { 
     print $part . PHP_EOL; 
    } 
    print "----------" . PHP_EOL; 
} 

Вы, вероятно, следует читать на arrays. Кроме того, если у вас нет вывода при запуске скрипта, вы должны, вероятно, установить уровень ошибок в E_ALL в настройках PHP во время разработки.

+0

Спасибо .. что означает значение null и true в "toArray (null, true, true, true)" – logan

1

Try:

echo "------------"."<br>"; 
foreach($sheetData as $ind) 
{ 
    foreach($ind as $index=>$val){ 
     echo $val."<br>"; 
    } 
    echo "------------"."<br>"; 
} 
+0

@logan Стоит отметить, что в примере @ user007 'foreach ($ ind as $ index => $ val) 'line в основном означает« Для каждого элемента массива '$ ind', создайте переменную, содержащую индекс' $ index', содержащий индекс элемента, и переменную '$ val', содержащую значение элемента. –

+0

@John Спасибо за замечание! –

+0

Спасибо, ребята ... в чем смысл null и true в "toArray (null, true, true, true)" в моем вопросе? – logan

Смежные вопросы