Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/40: Рейтинг темы: голосов - 40, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 29.09.2014
Сообщений: 44

Вывод определенного значения из массива

26.12.2018, 12:32. Показов 7708. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Только начал изучать PHP и столкнулся с небольшой проблемой.
Суть такая: имеется массив, содержащий данные об объявлениях.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
$info = [
    0 => [
        'name' => '2014 Rossignol District',
        'categorie' => 'Доски и лыжи',
        'price' => '10990',
        'url' => 'img/lot-1.jpg'
    ],
    1 => [
        'name' => 'DC Ply Mens 2016/2017',
        'categorie' => 'Доски и лыжи',
        'price' => '159999',
        'url' => 'img/lot-2.jpg'
    ],
    2 => [
        'name' => 'DC Ply Mens 2016/2017',
        'categorie' => 'Крепления',
        'price' => '159999',
        'url' => 'img/lot-3.jpg'
    ],
    3 => [
        'name' => 'Ботинки для сноуборда',
        'categorie' => 'Ботинки',
        'price' => '40000',
        'url' => 'img/lot-4.jpg'
    ],
    4 => [
        'name' => 'Куртка для сноуборда',
        'categorie' => 'Одежда',
        'price' => '8000',
        'url' => 'img/lot-5.jpg'
    ],
    5 => [
        'name' => 'Маска',
        'categorie' => 'Разное',
        'price' => '5400',
        'url' => 'img/lot-6.jpg'
    ],
];
Требуется, перебирая данный массив циклом, выводить данные в каждое объявление.
Проблема в том, что я не могу понять, как выводить одно конкретное значение в нужном месте.
Вот так выводятся все данные, но мне нужно отдельно, допустим, 'name' для первого, потом 'price' для второго.
PHP
1
2
3
4
5
for ($i = 0; $i < count($info); $i++) {
    foreach ($info[$i] as $key => $value) {
        print($value);
    }
}
Вроде ничего сложного, но вот не получается.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.12.2018, 12:32
Ответы с готовыми решениями:

Вывод определенного значения из файла
Ребят помогите написать вывод определенного значения из файла. Допустим в файле у меня такой html код &lt;div...

Вывод определенного значения из таблицы
Доброго времени суток! У меня есть текстовый файл, из которого на странице создается табличка. Каждая строка файла имеет вид: ...

Вывод определенного значения, при выборе другого значения из списка
Где-то это уже было, но не смог найти. Подскажите, пожалуйста, формулу, для решения такой задачи: Есть два массива значений,...

6
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
26.12.2018, 12:54
Ну можно и без foreach обойтись:
PHP
1
2
3
for ($i = 0; $i < count($info); $i++) {
    echo $info[$i]['name'].', price: '.$info[$i]['price'].'<br>';
}
Добавлено через 1 минуту
Или напрямую обращаться:
PHP
1
echo $info[1]['name'].', price: '.$info[1]['price'].'<br>';
0
0 / 0 / 0
Регистрация: 29.09.2014
Сообщений: 44
26.12.2018, 13:07  [ТС]
Прямой перебор понятен, но не в данной ситуации.
Видимо, не совсем внятно суть изложил.
Вот у меня есть 6 объявлений (6 массивов).
Требуется для каждого вывести свои отдельные поля.
Сейчас у меня все одинаковые значения, а нужно, чтобы были у каждого своё.
То есть все вместе я могу вывести, но нужно по отдельности.
Миниатюры
Вывод определенного значения из массива  
0
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
26.12.2018, 14:10
Лучший ответ Сообщение было отмечено dima2308 как решение

Решение

dima2308, глядя на картинку, невозможно понять каким образом она формируется. Но глядя на код, очень легко понять что из него сформируется.

Показывайте код как формируется этот список из 6 блоков.

Цитата Сообщение от dima2308 Посмотреть сообщение
Вот у меня есть 6 объявлений (6 массивов).
Требуется для каждого вывести свои отдельные поля.
Ну Вы же блоки циклом формируете или статично шесть блоков выводите? Хотя и том и в другом случае это реализуется очень просто:

1:
PHP
1
2
3
for ($i = 0; $i < count($info); $i++) {
    echo $info[$i]['name'].'<br>';// Здесь будет выводится name для своего блока в массиве
}
2:
PHP/HTML
1
2
3
4
5
<div id="vtoroi_blok">
<?php
  echo $info[1]['name'];
?>
</div>
1
0 / 0 / 0
Регистрация: 29.09.2014
Сообщений: 44
26.12.2018, 14:18  [ТС]
Цитата Сообщение от sasha0012 Посмотреть сообщение
for ($i = 0; $i < count($info); $i++) { echo $info[$i]['name'].'<br>';// Здесь будет выводится name для своего блока в массиве }
Именно это мне было и нужно.
Я думал, что двумя циклами нужно делать, а оказывается всё намного проще.
Спасибо!
0
0 / 0 / 0
Регистрация: 29.09.2014
Сообщений: 44
28.12.2018, 14:39  [ТС]
Одна проблема была решена, но возникла теперь другая.
Требуется разбить проект на шаблоны и потом сгенерировать готовый документ.
Написал функцию-шаблонизатор (functions.php).
PHP
1
2
3
4
5
6
7
8
9
10
11
function renderTemplate($template_path, $template_data)
    {
        ob_start();
        if (file_exists($template_path)) {
            require_once "$template_path";
        } else {
            return "Файл $template_path не найден";
        }
        $content = ob_get_clean();
        return $content;
    }
Сделал основной файл, который подключает все шаблоны.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
 require_once "functions.php";
    
    $is_auth = (bool) rand(0, 1);
 
    $title = "YetiCave - Главная";
    $user_name = 'Константин';
    $user_avatar = 'img/user.jpg';
    $categories = ["Доски и лыжи", "Крепления", "Ботинки", "Одежда", "Инструменты", "Разное"];
    $info = [
        0 => [
            'name' => '2014 Rossignol District',
            'categorie' => 'Доски и лыжи',
            'price' => '10990',
            'url' => 'img/lot-1.jpg'
        ],
        1 => [
            'name' => 'DC Ply Mens 2016/2017',
            'categorie' => 'Доски и лыжи',
            'price' => '159999',
            'url' => 'img/lot-2.jpg'
        ],
        2 => [
            'name' => 'DC Ply Mens 2016/2017',
            'categorie' => 'Крепления',
            'price' => '8000',
            'url' => 'img/lot-3.jpg'
        ],
        3 => [
            'name' => 'Ботинки для сноуборда DC Mutiny',
            'categorie' => 'Ботинки',
            'price' => '10999',
            'url' => 'img/lot-4.jpg'
        ],
        4 => [
            'name' => 'Куртка для сноуборда DC Mutiny',
            'categorie' => 'Одежда',
            'price' => '7500',
            'url' => 'img/lot-5.jpg'
        ],
        5 => [
            'name' => 'Маска Oakley Canopy',
            'categorie' => 'Разное',
            'price' => '5400',
            'url' => 'img/lot-6.jpg'
        ],
    ];
  
    $is_auth = (bool) rand(0, 1);
    
    $page_content = renderTemplate('templates/index.php', [
        'info' => $info]);
        
    $layout_content = renderTemplate('templates/layout.php', [
        'content' => $page_content,
        'title' => $title,
        'auth' => $is_auth, 
        'username' => $user_name,
        'avatar' => $user_avatar,
        'categories' => $categories]);
        
    print($layout_content);
Всё отрабатывает нормально, но не видны переменные, которые в шаблон помещал, соответственно данные никакие не выводятся.
Вопрос в том, как заставить переменные быть видимыми.

Добавлено через 2 минуты
С обычными строковыми разобрался, делаю вот так.
PHP
1
<title><?php print($template_data['title']); ?></title>
Но не получается таким способом обратиться к массиву.
PHP
1
2
3
for ($i = 0; $i < count($info); $i++) {
    echo $info[$i]['name'].'<br>';
}
0
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
28.12.2018, 20:35
Ну так передавайте массив $info в функцию третьем параметром. Ну, или я вообще ничего не понял.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.12.2018, 20:35
Помогаю со студенческими работами здесь

Массивы, вывод числа до определенного значения
Помогите написать программу 6. Дан массив целочисленных. Вывести все значения до 28.*Отсортировать значения. Пример: Ввод: 236, 12,...

Остановить вывод данных при превышении определенного значения
нужно чтобы после if a&gt;60 остановилась програма и не выводило - значений

Вывод определенного значения списка при нажатии на ссылку
Здравствуйте! Есть список: &lt;select&gt; &lt;option value=&quot;Пункт 1&quot;&gt;Пункт 1&lt;/option&gt; &lt;option value=&quot;Пункт 2&quot;&gt;Пункт...

Вывод определенного элемента массива из массива символов
Имеется символьный массив char, нужно вывести на экран произвольный элемент этого массива. Сделал так: #include &lt;iostream&gt; ...

Удаление определенного значения из массива
Собственно есть массив: $array = array( =&gt; 'one', =&gt; 'two', =&gt; 'three', ); Подскажите пожалуйста, как мне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK сделайте это, JDK, то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Перейдите по ссылке:. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru