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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление массива 
:(
    Опции темы
DenWPF
Дата 11.2.2010, 03:14 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: нет
Всего: 1



чот не удаляется.

global $array_mas;
foreach($array_mas as $val)
    if(strcmp($val[0],  $site) == 0)
                  удалить весь $val;
PM MAIL   Вверх
Severyanin
Дата 11.2.2010, 05:31 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 31.7.2007
Где: Россия, Омск

Репутация: нет
Всего: 9



а как удаляете? unset($val) ?

Добавлено через 45 секунд
да, кстати, в цикле foreach можно только пкркбирать элементы массива, изменять их нельзя. Для этого придется использовать цикл for


--------------------
"Звонким вереском скроются наши следы, и не вспомнят о них. Кто поверит нам, рыцарям павшей звезды из отвергнутых книг? Пусть в узоре времен ни стихов. ни имен, но напомнит забывшим их полуночный крик." Тэм Гринхилл
"Ужели суслик твоего коварства нагадит в плов доверья моего?". Л.Филатов 
PM MAIL WWW ICQ   Вверх
skyboy
Дата 11.2.2010, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(Severyanin @  11.2.2010,  04:31 Найти цитируемый пост)
в цикле foreach можно только пкркбирать элементы массива, изменять их нельзя

не совсем так. изменять элементы можно, используя ссылку:
Код

foreach($array as &$element) {
 $element += 7;
}

а вот изменять сам массив(удалять/добавлять) - навряд ли выйдет.  тем более, что foreach без использования ссылки будет перебирать копию оригинального массива.
DenWPF, ты можешь в foreach создать копию массива только из нужных элементов, а перезаписать уже за циклом:
Код

global $array_mas;
$result = array();
foreach($array_mas as $key => $val) {
    if(strcmp($val[0],  $site) != 0) {
       $result[$key] = $val; 
       // если у тебя массив не ассоциативный, то $result[] = $val; чтоб ключи шли подряд
   }
}
$array_mas = $result;


PM MAIL   Вверх
DenWPF
Дата 11.2.2010, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: нет
Всего: 1



ого, ребята спасибо....я как муха со стеклом с этим форичем.

давайте уже до конца тут все у меня уясните...

$array_mas - список сайтов.
если условие if(strcmp($val[0],  $site) != 0) срабатывает, то я в новый массив добавляю елемент этот, но его надо удалить в самом $array_mas.
мне не как кроме как for ?

p/s кстати 

вот ваш static $result = array();  -у меня статик. может это будет иметь какое то значение.

даже структуру лучше напишу.



есть массив
 $array_mas[0][0] - site
 $array_mas[0][1] - не нужный парамет 
 $array_mas[0][2] - word
 $array_mas[0][3] - place - просто инт
 $array_mas[0][4] - date 
 $array_mas[0][5] - word
 $array_mas[0][6] - place
 $array_mas[0][7] - date


так вот приходит в функцию значение site_temp, word_temp , place_temp, date_temp
надо проверить если site_temp == site, то надо проверить если word_temp == word то надо просто перезаписать вместо него.
а если нету такого слова то просто дописать.

а если нету сайта то просто с низу его дописать.

как мне это реализовать?


Это сообщение отредактировал(а) DenWPF - 11.2.2010, 11:40
PM MAIL   Вверх
capitan
Дата 11.2.2010, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

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



Что-то я не понял. Разьве так не сработает? :
Код

global $array_mas;
foreach($array_mas as $key=>$val)
    if(strcmp($val[0],  $site) == 0)
                  unset($array_mas[$key]);


DenWPF, небольшой совет. Лучше сделать массив со строковыми ключами. А то через неделю уже помнить не будете где что лежит.

$array_mas[0]['site'] - site
 $array_mas[0]['param'] - не нужный парамет 
 $array_mas[0]['word'] - word
 $array_mas[0]['place'] - place - просто инт
 $array_mas[0]['date'] - date 
 $array_mas[0]['word2'] - word
 $array_mas[0]['place2'] - place
 $array_mas[0]['date2'] - date

Доступ при переборе соответственно будет: $array_mas[$key]['site'] и т.д.

Это сообщение отредактировал(а) capitan - 11.2.2010, 12:00
PM MAIL WWW ICQ   Вверх
DenWPF
Дата 11.2.2010, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: нет
Всего: 1



вот что то не складывается=( но что...
PM MAIL   Вверх
DenWPF
Дата 11.2.2010, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: нет
Всего: 1



подскажите как сделать
$array_mas['site.ru'][0-5]  
$array_mas['site2.ru'][0-5]  
если site.ru есть то с ним работаю, а если нет, то создать новый 
PM MAIL   Вверх
capitan
Дата 11.2.2010, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

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



PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0659 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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