Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Не пойму где ошибка (https://javascript.ru/forum/server/12596-ne-pojjmu-gde-oshibka.html)

Rau1 25.10.2010 15:35

Не пойму где ошибка
 
Есть массив. В нем хранятся некоторые данные вида:
$array = ("<span class=\"title\"></span>",
          "<span class=\"title\"></span>",
          "<span class=\"title\"></span>",
          "<span class=\"title\"></span>");

В цикле переменной присваиваю значение определенного элемента, и работаю с переменной, а именно:
$string = $array[$i];
$string = ereg_replace("<span class=\"title\"></span>", "<span class=\"title1\"></span>", $string);

Почему у меня изменяется массив вместе с переменной $string?

Gozar 25.10.2010 16:37

Цитата:

Сообщение от Rau1 (Сообщение 75750)
Почему у меня изменяется массив вместе с переменной $string?

Вы что-то не показали, в приведенном вами коде такой логики нет. А соответственно изменяться массив не будет.

Gozar 25.10.2010 16:43

кстати это что за язык такой?, где массив создается так:
$array = ("<span class=\"title\"></span>",

Rau1 25.10.2010 16:50

В том то и дело, что я массив как заполнил - больше нигде не трогаю, а он меняется...
вот полный код:
$items_array = array();
	while($row2 = $db->sql_fetchrow($result2)) {
		$items_array[$row2['defindex']] = "<div class=\"tooltip\" id=\"my-tip-".$row2['id']."\"><span class=\"title\">".$row2['title']."</span><br/><span class=\"level\"></span><br/>".tags2html($row2['description'])."</div><img class=\"icon\" alt=\"".$row2['title']."\" src=\"images/icons/".$row2['iconItem']."\">";
	}
	$xml = simplexml_load_file("адрес до xml");
	foreach ($xml->items->item as $item) {
		$string = $items_array[intval($item->defindex)];
		$string = ereg_replace("<span class=\"level\"></span>", "<span class=\"level\">Уровень ".$item->level."</span>", $string); // Добавляем уровень
		// Опеределяем цвет заголовка
		if($item->quality == "3") {
				$search = "#\<span class=\"title\"\>(.*?)\</span\>#si";
				$replace = '<span class="vintage">$1</span>';
				$string = preg_replace($search, $replace, $string);
		} elseif($item->quality == "6") {
				$search = "#\<span class=\"title\"\>(.*?)\</span\>#si";
				$replace = '<span class="unique">$1</span>';
				$string = preg_replace($search, $replace, $string);
		}
		$content .= $string." \n";
	}

Вот во втором цикле меняется массив. Если его закомментировать, то массив выводится исходный.
Цитата:

Сообщение от Gozar (Сообщение 75761)
кстати это что за язык такой?, где массив создается так:
$array = ("<span class=\"title\"></span>",

ну это я не дописал конечно, когда пример приводил

Rau1 25.10.2010 17:36

сейчас экспериментировал с циклом...

если закомменторовать строчку
Код:

$content .= $string." \n";
, то массив не изменяется, правда ничего и не выводится..

Rau1 25.10.2010 17:39

все, можно закрывать =)

Gozar 25.10.2010 20:23

В следующий раз либо скажите в чём ошибка была, либо не создавайте темы. Только время отнимаете зря.


Часовой пояс GMT +3, время: 18:49.