Как получить именованные диапазоны в таблице PHPS

Чтобы предотвратить создание бесполезных точек выбора, используйте отставание, чтобы извлечь выгоду из индексации первого аргумента:

list_butlast([X|Xs], Ys) :-                 % use auxiliary predicate ...
   list_butlast_prev(Xs, Ys, X).            % ... which lags behind by one item

list_butlast_prev([], [], _).
list_butlast_prev([X1|Xs], [X0|Ys], X0) :-  
   list_butlast_prev(Xs, Ys, X1).           % lag behind by one

Примеры запросов:

?- list_butlast([], Xs).
false.

?- list_butlast([1], Xs).
Xs = [].                                    % succeeds deterministically

?- list_butlast([1,2], Xs).
Xs = [1].                                   % succeeds deterministically

?- list_butlast([1,2,3], Xs).
Xs = [1,2].                                 % succeeds deterministically

Как насчет другого направления?

?- list_butlast(Xs, []).
Xs = [_A].

?- list_butlast(Xs, [1,2,3]).
Xs = [1,2,3,_A].

Как насчет наиболее общего запроса?

?- list_butlast(Xs, Ys).
   Xs = [_A]            , Ys = []
;  Xs = [_A,_B]         , Ys = [_A]
;  Xs = [_A,_B,_C]      , Ys = [_A,_B]
;  Xs = [_A,_B,_C,_D]   , Ys = [_A,_B,_C]
;  Xs = [_A,_B,_C,_D,_E], Ys = [_A,_B,_C,_D]
⋯
-1
задан Yan 16 January 2019 в 02:31
поделиться

1 ответ

Я не использую PhpSpreadsheet, но, посмотрев их документацию , getNamedRanges возвращает массив NamedRange с именами, он не возвращает только одни имена. Так что вам нужно получить имя из диапазона, например -

foreach ($spreadsheet->getNamedRanges() as $range) {
    temp_name[] = $range->getName();
}

также re: print_r("<br>Temp Name<br>"); для строк, просто используйте print '..';, print_r() для массивов.

0
ответ дан gingerCodeNinja 16 January 2019 в 02:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: