PHP: указан неверный аргумент для foreach () при динамическом c Экспорт данных? - PullRequest
1 голос
/ 11 февраля 2020

Ошибка при печати данных Dynami c в phpexcel - Ошибка неверного аргумента при печати данных из моей MYSQL базы данных

$labels = array();
$i = 0;
while ($row1 = mysql_fetch_array($query_result1, MYSQL_ASSOC)) {
    $labels[$i++] = $row1["label"];
} 
  foreach($labels[0] as $ind=>$label){ //error invalid argument
        $letter = range('A', 'Z')[$ind];
        $tmp = explode('>',$label); 
        $col_names[] = $tmp[0];
        echo $letter.'1'."\r\n";

        echo "Column -> $tmp[0] \r\n"; 
}  

    foreach ($labels as $ind=>$item){ //Error invalid Argument

    $index = $ind + 2;

foreach($item as $ind2=>$data){

      $letter = range('A', 'Z')[$ind2];

    $val = explode('>',$data);

    $objPHPExcel->getActiveSheet()->setCellValue("$letter$index",$val[1]);

}

} 

My Var_dump ($ label) -

  array(15) {
  [0]=>
  string(2) "EY"
  [1]=>
  string(3) "PWC"
  [2]=>
  string(8) "Deloitte"
  [3]=>
  string(4) "KPMG"
  [4]=>
  string(14) "Grant Thornton"
  [5]=>

Я добавил весь код Пожалуйста, один раз Пожалуйста

он дает недопустимая ошибка аргумента

1 Ответ

1 голос
/ 11 февраля 2020

Как упоминалось в комментариях, $labels[0] не является массивом, однако $labels является

Изменение:

foreach($labels[0] as $ind=>$label){

К :

foreach($labels as $ind => $label) {

Дополнительная литература.


Расширение на основе ваших комментариев:

foreach($labels as $ind => $label) {

    $index = $ind + 2;

    $letter = range('A', 'Z')[$ind2];
    $val = explode('>', $data);

    $objPHPExcel->getActiveSheet()->setCellValue($letter . $index, $val[1]);

}
...