Загрузка данных
Давай исправим все шаги так, чтобы код везде был чистым, рабочим и рассчитанным на веб-окружение (браузер), без конфликтов с символами перевода строк (\n), чтобы у тебя больше не было никаких ошибок.
Вот исправленный и полностью рабочий код по всем шагам:
Шаг 0. Создание героя
<?php
// === ТВОЙ ГЕРОЙ ===
$heroName = "Артрог";
$heroClass = "Воин";
$heroLevel = 5;
$heroHp = 120;
$heroGold = 350;
echo "Герой: " . $heroName . "<br>";
echo "Класс: " . $heroClass . "<br>";
echo "Уровень: " . $heroLevel . "<br>";
echo "Здоровье: " . $heroHp . "<br>";
echo "Золото: " . $heroGold . "<br>";
?>
Шаг 1. Инвентарь как индексированный массив
<?php
// ... код героя из Шага 0 ...
// === ИНВЕНТАРЬ: список названий ===
$inventory = [
"Железный меч",
"Деревянный щит",
"Зелье здоровья",
"Кошель с золотом",
"Карта подземелья"
];
echo "Предметы в инвентаре:<br>";
echo $inventory[0] . "<br>";
echo $inventory[1] . "<br>";
echo $inventory[2] . "<br>";
echo "Всего предметов: " . count($inventory) . "<br>";
?>
Шаг 2. Один предмет как ассоциативный массив
<?php
// ... код героя и инвентаря ...
// === ОДИН ПРЕДМЕТ с характеристиками ===
$sword = [
'name' => 'Железный меч',
'type' => 'weapon',
'damage' => 15,
'price' => 120,
'weight' => 3.5,
'isEquipped'=> true,
];
echo "Название: " . $sword['name'] . "<br>";
echo "Тип: " . $sword['type'] . "<br>";
echo "Урон: " . $sword['damage'] . "<br>";
echo "Цена: " . $sword['price'] . " золота<br>";
echo "Вес: " . $sword['weight'] . " кг<br>";
echo "Экипирован: " . ($sword['isEquipped'] ? 'да' : 'нет') . "<br>";
?>
Шаг 3. Полный инвентарь — массив массивов
<?php
$inventory = [
[
'name' => 'Железный меч',
'type' => 'weapon',
'damage' => 15,
'price' => 120,
'weight' => 3.5,
'isEquipped'=> true,
'rarity' => 'common',
],
[
'name' => 'Деревянный щит',
'type' => 'armor',
'damage' => 0,
'defense' => 8,
'price' => 80,
'weight' => 4.0,
'isEquipped'=> true,
'rarity' => 'common',
],
[
'name' => 'Зелье здоровья',
'type' => 'consumable',
'damage' => 0,
'heal' => 50,
'price' => 25,
'weight' => 0.3,
'isEquipped'=> false,
'rarity' => 'common',
],
[
'name' => 'Кольцо огня',
'type' => 'armor',
'damage' => 5,
'defense' => 2,
'price' => 500,
'weight' => 0.1,
'isEquipped'=> false,
'rarity' => 'rare',
],
[
'name' => 'Карта подземелья',
'type' => 'quest',
'damage' => 0,
'price' => 0,
'weight' => 0.1,
'isEquipped'=> false,
'rarity' => 'epic',
]
];
echo "Инвентарь создан. Предметов: " . count($inventory) . "<br>";
echo "Первый предмет: " . $inventory[0]['name'] . "<br>";
echo "Цена последнего: " . $inventory[4]['price'] . "<br>";
?>
Шаг 4. Перебор инвентаря через foreach
<?php
echo "=== ИНВЕНТАРЬ ГЕРОЯ ===<br><br>";
foreach ($inventory as $item) {
echo "• " . $item['name'] . "<br>";
echo "Тип: " . $item['type'] . "<br>";
echo "Цена: " . $item['price'] . " золота<br>";
echo "Вес: " . $item['weight'] . " кг<br>";
echo "Редкость: " . $item['rarity'] . "<br><br>";
}
?>
Шаг 5. foreach с ключом
<?php
echo "=== ИНВЕНТАРЬ С НОМЕРАМИ ===<br><br>";
foreach ($inventory as $index => $item) {
$number = $index + 1;
echo "[$number] " . $item['name'] . " (" . $item['rarity'] . ")<br>";
}
?>
Шаг 6. Фильтрация — только экипированные предметы
<?php
echo "=== ЭКИПИРОВАННЫЕ ПРЕДМЕТЫ ===<br>";
$equippedCount = 0;
foreach ($inventory as $item) {
if ($item['isEquipped'] === true) {
echo "✓ " . $item['name'] . "<br>";
$equippedCount++;
}
}
echo "<br>Всего экипировано: $equippedCount<br>";
?>
Шаг 7. Подсчёт статистики
<?php
echo "=== СТАТИСТИКА ИНВЕНТАРЯ ===<br><br>";
$totalPrice = 0;
$totalWeight = 0;
$types = [];
foreach ($inventory as $item) {
$totalPrice += $item['price'];
$totalWeight += $item['weight'];
$type = $item['type'];
if (!isset($types[$type])) {
$types[$type] = 0;
}
$types[$type]++;
}
echo "Предметов всего: " . count($inventory) . "<br>";
echo "<br>По типам:<br>";
foreach ($types as $type => $count) {
echo " • $type: $count шт.<br>";
}
?>
Шаг 8 и 9. Финальный HTML-код
<?php
$heroName = "Артрог";
$heroClass = "Воин";
$heroLevel = 5;
$heroHp = 120;
$heroGold = 350;
$inventory = [
[
'name' => 'Железный меч',
'type' => 'weapon',
'damage' => 15,
'price' => 120,
'weight' => 3.5,
'isEquipped'=> true,
'rarity' => 'common',
],
[
'name' => 'Деревянный щит',
'type' => 'armor',
'damage' => 0,
'defense' => 8,
'price' => 80,
'weight' => 4.0,
'isEquipped'=> true,
'rarity' => 'common',
],
[
'name' => 'Зелье здоровья',
'type' => 'consumable',
'damage' => 0,
'heal' => 50,
'price' => 25,
'weight' => 0.3,
'isEquipped'=> false,
'rarity' => 'common',
],
[
'name' => 'Кольцо огня',
'type' => 'armor',
'damage' => 5,
'defense' => 2,
'price' => 500,
'weight' => 0.1,
'isEquipped'=> false,
'rarity' => 'rare',
],
[
'name' => 'Карта подземелья',
'type' => 'quest',
'damage' => 0,
'price' => 0,
'weight' => 0.1,
'isEquipped'=> false,
'rarity' => 'epic',
]
];
$totalPrice = 0;
$totalWeight = 0;
$types = [];
foreach ($inventory as $item) {
$totalPrice += $item['price'];
$totalWeight += $item['weight'];
$type = $item['type'];
if (!isset($types[$type])) {
$types[$type] = 0;
}
$types[$type]++;
}
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Инвентарь - <?php echo $heroName; ?></title>
<style>
body { font-family: sans-serif; background: #1a1a1a; color: #fff; padding: 20px; }
.hero-card { background: #2a2a2a; padding: 20px; border-radius: 8px; max-width: 400px; }
.item { background: #333; margin: 10px 0; padding: 10px; border-radius: 4px; border-left: 4px solid #777; }
.equipped { border-left-color: #4ecca3; }
.rarity-common { color: #aaa; }
.rarity-rare { color: #3498db; }
.rarity-epic { color: #9b59b6; }
.stats { margin-top: 20px; border-top: 1px solid #444; padding-top: 10px; }
</style>
</head>
<body>
<div class="hero-card">
<h1><?php echo htmlspecialchars($heroName); ?></h1>
<p><b>Класс:</b> <?php echo $heroClass; ?> | <b>Уровень:</b> <?php echo $heroLevel; ?></p>
<p><b>Здоровье:</b> <?php echo $heroHp; ?> | <b>Золото:</b> <?php echo $heroGold; ?></p>
<h2>Инвентарь (<?php echo count($inventory); ?> предметов)</h2>
<?php foreach ($inventory as $item): ?>
<div class="item <?php echo $item['isEquipped'] ? 'equipped' : ''; ?>">
<b class="rarity-<?php echo $item['rarity']; ?>">
<?php echo htmlspecialchars($item['name']); ?>
</b>
<br>
Тип: <?php echo $item['type']; ?> |
Цена: <?php echo $item['price']; ?> |
Вес: <?php echo $item['weight']; ?> кг
<?php if ($item['isEquipped']): ?>
<span style="color: #4ecca3;">✓ экипировано</span>
<?php endif; ?>
</div>
<?php endforeach; ?>
<div class="stats">
<b>Общая стоимость:</b> <?php echo $totalPrice; ?> золота<br>
<b>Общий вес:</b> <?php echo round($totalWeight, 2); ?> кг
</div>
</div>
</body>
</html>