【发布时间】:2020-07-14 23:36:03
【问题描述】:
我有一个很长的数组列表,其中包括属行(以大写字母开头,例如:ACHNATHES)和物种行(以大写字母开头,然后是一个点,例如:A.)我需要根据上面的内容进行一些转换文本。下面你就很容易理解了:
ACHNANTHES
A. brevipes
A. coarctata
A. cocconeiformis
A. gibberula
A. lacunarum
A. lineariformis
A. longipes
A. nollii
A. parvula
A. petersenii
A. pyrenaicum
A. stolida
A. thermalis
A. trinodis
A. wellsiae
PLATESSA
P. conspicua
P. montana
P. salinarum
ACHNANTHIDIUM
A. affine
A. deflexum
A. exiguum
A. exile
A. lanceolatum
A. minutissimum
A. minutum
A. thermale
我想把它改成这样:
ACHNANTHES
Achantes brevipes
Achantes coarctata
Achantes cocconeiformis
Achantes gibberula
Achantes lacunarum
Achantes lineariformis
Achantes longipes
Achantes nollii
Achantes parvula
Achantes petersenii
Achantes pyrenaicum
Achantes stolida
Achantes thermalis
Achantes trinodis
Achantes wellsiae
PLATESSA
Platessa conspicua
Platessa montana
Platessa salinarum
ACHNANTHIDIUM
Achanthidium affine
Achanthidium deflexum
Achanthidium exiguum
Achanthidium exile
Achanthidium lanceolatum
认为我需要在 PHP 中使用 while 或 foreach,但我不知道该怎么做。请帮忙。
@mickmackmusa 如你所愿,是我数组的一部分:
array (
0 => 'ACHNANTHES Bory, Dict. Class. Hist. Nat. 1: 79 (1822). / SUCINCIĞI.',
1 => 'A. brevipes C.Agardh, Syst. Alg.: 1 (1824). / Küçük sucıncığı.',
2 => 'A. coarctata (Bréb. ex W.Sm.) Grunow, Syn. Diat. Belg.: expl. pl. XXVI: ş. 17 (1880). / Dar sucıncığı.',
3 => 'A. cocconeiformis Mann, U.S. Nat. Mus., Bull. 6: 182 (1925). / Top sucıncığı.',
4 => 'A. gibberula Grunow, Kongl. Svenska Vetensk.-Akad. Handl. 17(2): 121 (1880). / Kambur sucıncığı.',
5 => 'A. lacunarum Hust., Bacillariophyta (Diatomeae) Zweite Auflage, Süsswass.-Fl. Mitteleurop. 10: 205 (1930). / Delikli sucıncığı.',
6 => 'A. lineariformis Lange-Bert., Biblioth. Diatomol. 27: 7, 134 pl. (1993). / Düz sucıncığı.',
7 => 'A. longipes C.Agardh, Syst. Alg.: 1 (1824). / Boylu sucıncığı.',
8 => 'A. nollii Bock, Nachrichtendes Naturwiss. Museums Stadt Aschaffenburg 38: 1 (1953). / Yaban sucıncığı.',
9 => 'A. parvula Kütz., Bacillarien: 76, pl. 21: ş. 5 (1844). / Saf sucıncığı.',
10 => 'A. petersenii Hust., Rabenhorst’s Krypt.-Fl. Deutschl.: 179, ş 10-14 (1937). / Bal sucıncığı.',
11 => 'A. pyrenaicum (Hust.) H.Kobayasi, Nova Hedwigia 65(1-4): 148, ş. 1-18 (1997). / Garip sucıncığı.',
12 => 'A. stolida (Krasske) Krasske, Ann. Acad. Sc. Fenn., ser. A, Biol. 14: 78 (1949). / Alık sucıncığı.',
13 => 'A. thermalis (Rabenh.) Schoenfeld, Diat. German.: 122 (1907). / Sıcak sucıncığı.',
14 => 'A. trinodis (Ralfs) Grunow, Syn. Diatom. Belg.: pl. XXVII: ş. 50 (1880). / Üç sucıncığı.',
15 => 'A. wellsiae Reimer, Monogr. Acad. Nat. Sci. Philadelphia 1: 16 (1966). / El sucıncığı.',
16 => 'PLATESSA Lange-Bert., Süsswass.-Fl. Mitteleuropa 2: 443 (2004). / SUTANESİ.',
17 => 'P. conspicua (Ant.Mayer) Lange-Bert., Süsswass.-Fl. Mitteleuropa 2: 445 (2004). / Küt sutanesi.',
18 => 'P. montana (Krasske) Lange-Bert., Süsswass.-Fl. Mitteleuropa 2: 445 (2004). / Dağ sutanesi.',
19 => 'P. salinarum (Grunow) Lange-Bert. / Sutanesi.',
20 => 'ACHNANTHIDIUM Kütz., Bacillarien: 75 (1844). / SUÇUBUĞU.',
21 => 'A. affine (Grunow) Czarn., Mem. Calif. Acad. Sci. 17: 156 (1994). / Hoş suçubuğu.',
22 => 'A. deflexum Kingston, Diatom Res. 15(2): 409 (2000). / Kıvrık suçubuğu.',
23 => 'A. exiguum (Grunow) Czarnecki, Mem. Calif. Acad. Sci. 17: 155 (1994). / Delikli suçubuğu.',
24 => 'A. exile (Kütz.) Heiberg, Conspect. Diatom. Dan.: 119 (1863). / Bitik suçubuğu.',
25 => 'A. lanceolatum (Bréb.) Kütz., Bot. Zeitung 4(14): 247 (1846). / Uzun suçubuğu.',
26 => 'A. minutissimum (Kütz.) Czarn., Mem. Calif. Acad. Sci. 17: 155 (1994). / Cüce suçubuğu.',
27 => 'A. minutum Cleve, Fl. Fenn. 8(2): 1 (1891). / Bodur suçubuğu.',
28 => 'A. thermale Rabenh., Fl. Eur. Alg. 1: 107 (1864). / Sıcak suçubuğu.',
29 => 'EUCOCCONEIS Cleve ex Meister, Beitr. Kryptogamenfl. Schweiz IV(1): 95 (1912). / SUESNEĞİ.',
30 => 'E. flexella (Kütz.) Meister, Beitr. Kryptogamenfl. Schweiz IV(1): 95 (1912). / Suesneği.',
31 => 'E. laevis (Østrup) Lange-Bert., Iconogr. Diatomol. 6: 46 (1999). / Pek suesneği.',
32 => 'E. quadratarea (Østrup) Lange-Bert., Iconogr. Diatomol. 6: 48 (1999). / Dört suesneği.',
【问题讨论】:
-
这些字符串是单独的数组项吗?即,你有类似
$species = ['ACHNANTHES', 'A. brevipes', 'A. coarctata', ...]; -
是的,每一行都是一个数组索引,如[0]、[1]...
-
此列表是否已排序?为什么不将其存储为诸如
[ARCHANTHES => [ brevipes,...]之类的键值,当您要访问它们时,将键降低并为其获取以下值 -
我不知道该怎么做,这是一个很长的列表,比如 4000 行
-
作为对您的问题的编辑,请以最真实的数组形式提供您的数据的小型、真实的表示形式。使用
var_export()并将该文本复制粘贴到您的问题中。 @Shraun
标签: php regex for-loop while-loop do-while