Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Строки.
#1
Есть txt фаил содержащий текст:
Код:
501#
A potion made from ground Red Herbs that restores ^000088about 45 HP^000000.
^ffffff_^000000
Weight :^777777 7^000000
#
502#
A potion made from ground Red and Yellow Herbs that restores ^000088about 105 HP^000000.
^ffffff_^000000
Weight :^777777 10^000000
#
Реально ли закинуть в ассоциативный массив так, что бы цифра была ключём, а всё что в нутри ## было значением?

пример:
echo $massive['501'].""; выводило
Код:
A potion made from ground Red Herbs that restores ^000088about 45 HP^000000.
^ffffff_^000000
Weight :^777777 7^000000

или подкиньте идею как по другому сделать.

Добавлено через 33 минуты
Найти строку не трудно, а вот выдернуть всё, что в нутри ## в голову не приходит.
Ответ
#2
Как пример.

PHP код:
<?php 
$string
= '
501#
A potion made from ground Red Herbs that restores ^000088about 45 HP^000000.
^ffffff_^000000
Weight :^777777 7^000000
#
502#
A potion made from ground Red and Yellow Herbs that restores ^000088about 105 HP^000000.
^ffffff_^000000
Weight :^777777 10^000000
#
'
;

$lines = explode(PHP_EOL, $string);
$lines = array_map('trim', $lines);

$item = null;
$desc = null;
$items = array();

foreach (
$lines as $line) {
if (
preg_match('#(^[\d]+)\##', $line, $match)) {
$item = $match[1];
continue;
}

if (
preg_match('#^\##', $line)) {
$items[$item] = $desc;
$desc = null;
continue;
}

$desc .= $line;
}

var_dump($items);

Код:
array
  501 => string 'A potion made from ground Red Herbs that restores ^000088about 45 HP^000000.^ffffff_^000000Weight :^777777 7^000000' (length=115)
  502 => string 'A potion made from ground Red and Yellow Herbs that restores ^000088about 105 HP^000000.^ffffff_^000000Weight :^777777 10^000000' (length=128)
Ответ
#3
буду разбирать сейчас) Большое спасибо.

Добавлено через 37 минут
Я понял до "[/d]+)\##", может кто расшифровать это кусок?
Код:
Полная версия
#(^[\d]+)\##
Ответ
#4
Строка начинается на целое с окончанием # > 999#
Ответ
#5
Завязал с поиском приключений на попу.
Сделал по старинки через массивы, я не пойму 1го почему не сохраняются изменения... когда алертом проверяю внутри цикла, значение присваивается. Когда вывожу остается прежним.
Код:
if(ai==0){
                str_title.innerHTML='Я ЗДЕСЬ БЫЛ 0';
                for(var i = 0; i < str2_text.length; i++){
                    for(var j = 0; j < str2_text.length-1; j++){
                        if(str2_text[j] > str2_text[j+1]){
                        zapas = str2_text[j];
                        str2_text[j] = str2_text[j+1];
                        str2_text[j+1] = zapas;
                        }
                    }
            }
            str2_final.innerHTML=''+str2_text
        }
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  как убрать перенос строки Gambit_J 0 1,598 06-03-2012, 09:23 PM
Последний пост: Gambit_J

Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)