Как предварительно разделить все символы, но не разбивать < b > и < br >

[[1] * 4] * 3

или даже:

[[1, 1, 1, 1]] * 3

Создает список, который ссылается на внутренний [1,1,1,1] 3 раза - не три копии внутреннего списка, поэтому в любое время, когда вы изменяете список (в любом позиция), вы увидите изменение три раза.

Это то же самое, что и в этом примере:

>>> inner = [1,1,1,1]
>>> outer = [inner]*3
>>> outer
[[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]
>>> inner[0] = 5
>>> outer
[[5, 1, 1, 1], [5, 1, 1, 1], [5, 1, 1, 1]]

, где это, вероятно, немного менее удивительно.

1
задан Nick 24 March 2019 в 04:19
поделиться

1 ответ

Вы можете сделать это, разделив либо один символ, либо последовательность символов в пределах < и >, используя опцию PREG_SPLIT_DELIM_CAPTURE для захвата каждого значения:

[ 110]

Вывод:

Array (
  [0] => M
  [1] => y
  [2] =>
  [3] => <b>
  [4] => t
  [5] => a
  [6] => b
  [7] => l
  [8] => e
  [9] => </b>
  [10] =>
  [11] => i
  [12] => n
  [13] => 
  [14] => b
  [15] => r
  [16] => o
  [17] => w
  [18] => n
  [19] =>
  [20] => <br>
  [21] =>
  [22] => H
  [23] => e
  [24] => l
  [25] => p 
)

Демо на 3v4l.org

0
ответ дан Nick 24 March 2019 в 04:19
поделиться
Другие вопросы по тегам:

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