Как записать переменную в массив - PullRequest
0 голосов
/ 09 мая 2020

Я пытаюсь записать строку в переменную между массивом

if ($row_klasse['RabKlNummerVK'] != ''){
    $headerrabklasse = '\'Rabatt\'\=\>\'price\'\,';
}
else {$headerrabklasse = '';}

, затем я хочу записать переменную $ headerrabklasse в:

$writer = new XLSXWriter();

$writer->writeSheetHeader (Preisliste, array(
        'Marke'=>'string',
        'Range'=>'string',
        'Artikelnummer'=>'string',
        'Bezeichnung'=>'string', 
        'EAN'=>'string', 
        'kg netto'=>'zahl3', 
        'VE'=>'string', 
        'Steuer'=>'string', 
        'Listenpreis'=>'euro',
        $headerrabklasse
        'Nettopreis'=>'price3',
        'UVP'=>'price'),
        ['auto_filter'=>true, 'widths'=>[20,50,15,45,15,8,8,8,8,8], 
        'font-style'=>'bold', 'fill'=>'#eee', 
        'freeze_rows'=>1, 
        'freeze_columns'=>0] );

И я всегда получаю ошибка ... Есть у кого-нибудь идея?

Ответы [ 3 ]

0 голосов
/ 09 мая 2020

Ваш массив принимает ключи и значения, поэтому вам нужно написать имя ключа и передать переменную как значение. Я также заметил, что вы смешиваете объявления Array. В PHP вы можете вызвать массив следующим образом:

Array(el1, el2, ...)

или так:

[el1, el1, ...]

Любой из них подходит, но для лучших практик вы хотите выбрать один и придерживаться с ним.

$writer->writeSheetHeader(Preisliste, [
        'Marke'=>'string',
        ...
        'MyNewKeyName' => $headerrabklasse,
        ...
    ],
    [
       ...
    ] 
);
0 голосов
/ 09 мая 2020

Полагаю, тебе не стоит делать это:

if ($row_klasse['RabKlNummerVK'] != '') {
    $headerrabklasse = ['Rabatt' => 'price'];
}
else {$headerrabklasse = [];}

Можно делать что-то вроде этого:

$writer->writeSheetHeader (Preisliste, array_merge(array(
    'Marke'=>'string',
    'Range'=>'string',
    'Artikelnummer'=>'string',
    'Bezeichnung'=>'string', 
    'EAN'=>'string', 
    'kg netto'=>'zahl3', 
    'VE'=>'string', 
    'Steuer'=>'string', 
    'Listenpreis'=>'euro',
    'Nettopreis'=>'price3',
    'UVP'=>'price'),
    ['auto_filter'=>true, 'widths'=>[20,50,15,45,15,8,8,8,8,8], 
    'font-style'=>'bold', 'fill'=>'#eee', 
    'freeze_rows'=>1, 
    'freeze_columns'=>0]), $headerrabklasse);
0 голосов
/ 09 мая 2020

В PHP вы можете легко добавлять данные в массив следующим образом:

//Define array with default values
//BTW: if you work with PHP >= 5.4 better to use [] instead of array()
$sheetHeaders = array(
    'Marke'=>'string',
    'Range'=>'string',
    'Artikelnummer'=>'string',
    'Bezeichnung'=>'string',
    'EAN'=>'string',
    'kg netto'=>'zahl3',
    'VE'=>'string',
    'Steuer'=>'string',
    'Listenpreis'=>'euro',
    'Nettopreis'=>'price3',
    'UVP'=>'price'
);

if ($row_klasse['RabKlNummerVK'] != ''){
    //Here you append data to existing array in format: array[key] = value
    $sheetHeaders['Rabatt'] = 'price';
}

//Then use fulfilled array as you want
$writer->writeSheetHeader ($preisliste, $sheetHeaders);
...