Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как правильно построить foreach. Как правильно построить foreach. 
:(
    Опции темы
Predator199
  Дата 22.9.2012, 07:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: -3
Всего: -4



Новичок еще в php. Сколько попыток не делал, не получается реализовать то чего хочу.
Есть:

Код

Array ( [0] => Array ( [id] => 410 [map] => de_boston) [1] => Array ( [id] => 412 [map] => c7m2_barge) [2] 


Как правильно воспользоваться foreach, так чтоб заменило название карты с id 410?
PM MAIL   Вверх
Gold Dragon
Дата 22.9.2012, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



Код

$aa[] = Array('id'  => 410, 'map' => 'de_boston');
$aa[] = Array('id'  => 412, 'map' => 'c7m2_barge');

echo "<h3>Только значения:</h3>";

foreach ($aa as $a) {
    echo 'ID = ' . $a['id'] . ', MAP = ' . $a['map'] . '<br />';
}

echo "<hr /><h3>Первичный ключ и значения:</h3>";

foreach ($aa as $key => $value) {
    echo $key . ': ID = ' . $value['id'] . ', MAP = ' . $value['map'] . '<br />';
}


Добавлено через 48 секунд
Цитата(Predator199 @  22.9.2012,  08:24 Найти цитируемый пост)
Как правильно воспользоваться foreach, так чтоб заменило название карты с id 410? 
а вот  вопрос не понял



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Predator199
  Дата 22.9.2012, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: -3
Всего: -4



Код

$gg1 = unserialize($gg);

$aa[] = Array('id'  => 410, 'map' => 'yyyyyyyyyyyyyyyyy');
foreach ($aa as $key => $value) {
    echo $key . ': ID = ' . $value['id'] . ', MAP = ' . $value['map'] . '<br />';
}

$gg1 = serialize($gg);
print_r($gg1);

$gg -путь до файла.
Совсем не пойму, как  найти совпадение по id и заменить карту?
Как в sql, находишь строчку с id=410 и обновляешь нужную тебе ячейку.

Это сообщение отредактировал(а) Predator199 - 22.9.2012, 08:57
PM MAIL   Вверх
Gold Dragon
Дата 22.9.2012, 10:07 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



Код

// Массив который у нас есть
$array[] = Array('id'  => 410, 'map' => 'de_boston');
$array[] = Array('id'  => 412, 'map' => 'c7m2_barge');

// Какой идентификатор ищем
$b = 410;

// На что заменяем
$d = "Новое значение";

// Гоняем массив
foreach ($array as $key => $value) {

    // Находим наш идентификатор
    if ($value['id'] == $b) {

        // Заменяем на нужное значение
        $array[$key]['map'] = $d;

        // За одно выходим из цикла
        break;
    }
}




--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Predator199
  Дата 22.9.2012, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: -3
Всего: -4



Код

$gg1 = Array ( [0] => Array ( [id] => 410 [map] =>de_boston);

$b = 410;
$d = "Новое значение";
foreach ($gg1 as $key => $value) {
    // Находим наш идентификатор
    if ($value['id'] == $b) {
        // Заменяем на нужное значение
        $array[$key]['map'] = $d;
        // За одно выходим из цикла
        break;
    }
}


print_r($gg1);


В итоге получаю 
Array ( [0] => Array ( [id] => 410 [map] =>de_boston).
Может не так вывожу результат?

Это сообщение отредактировал(а) Predator199 - 22.9.2012, 10:41
PM MAIL   Вверх
Guedda
Дата 22.9.2012, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 13
Всего: 78



Код

$gg1 = Array ( [0] => Array ( ['id'] => 410 ['map'] => 'de_boston');
$b = 410;
$d = "Новое значение";
foreach ($gg1 as $key => $value) {
    // Находим наш идентификатор
    if ($value['id'] == $b) {
        // Заменяем на нужное значение
        $gg1[$key]['map'] = $d;
        // За одно выходим из цикла
        break;
    }
}
print_r($gg1);

Вот так будет работать. Проверено.

Это сообщение отредактировал(а) Guedda - 22.9.2012, 11:02


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Predator199
  Дата 22.9.2012, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: -3
Всего: -4



Спасибо большое.
PM MAIL   Вверх
Guedda
Дата 22.9.2012, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 13
Всего: 78



Цитата(Predator199 @  22.9.2012,  12:31 Найти цитируемый пост)
Спасибо большое. 

Не за что. Но на будущее, внимательно проверяйте и читайте код, который Вам дали, как пример (а не просто копируйте его). Вам его дают не для копи-паста, а чтобы Вы разобрались в проблеме (а не решили ее с помощью других).


P.S.: Если вопрос решен, не забывайте, пожалуйста, отмечать этот топик решенным (вверху справа увидите ссылку "Отметить тему, как решенную"


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Predator199
  Дата 23.9.2012, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: -3
Всего: -4




Код

case "li1":
foreach($ser as $serv) {
$_SESSION['id'] = $serv['id'];
}
break;


Код

case "li2":
echo $_SESSION['id'];
break;


Как не пытайся, а передается только максимальный id из перечисленных в li1. Есть этому решение?
PM MAIL   Вверх
Evghenusi
Дата 23.9.2012, 15:15 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: 6
Всего: 15



Цитата(Predator199 @  23.9.2012,  13:45 Найти цитируемый пост)
Код

case "li1":
foreach($ser as $serv) {
$_SESSION['id'] = $serv['id'];
}
break;


Код

case "li2":
echo $_SESSION['id'];
break;


Как не пытайся, а передается только максимальный id из перечисленных в li1.

если максимальный айди у последнего элемента цикла, то всё логично.

Цитата(Predator199 @  23.9.2012,  13:45 Найти цитируемый пост)
Есть этому решение? 

ага, откройте книжку по PHP и заполните пробелы.
PM WWW   Вверх
Predator199
  Дата 26.9.2012, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: -3
Всего: -4



Спс. Разобрался.Ранее заменяли, а как будит прибавить еще одну запись?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0517 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.