Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Объединить массивы?
 
 автор: xpom   (15.09.2008 в 21:48)   письмо автору
 
 

Помогите, пожалуйста с массивами!
Как можно объединить несколько массивов в один.
вот таких:

Array
(
[0] => 11
[1] => 45
[2] => 78
[3] => 15
)

Array
(
[0] => 11
[1] => 85
[2] => 78
[3] => 196
)

А потом нужно будет удалить совпадающие значения в этом созданном одном массиве?

  Ответить  
 
 автор: koshka   (15.09.2008 в 22:49)   письмо автору
 
   для: xpom   (15.09.2008 в 21:48)
 


$result = array_unique(array_merge($arr_1, $arr_2));

  Ответить  
 
 автор: xpom   (16.09.2008 в 11:15)   письмо автору
 
   для: koshka   (15.09.2008 в 22:49)
 

Спасибо, большое с функциями разобрался!
Подскажите а если у меня выводится из базы данных эти массивы в цикле, как их можно собрать в функцию array_merge($arr_1, $arr_2) через запятую?
Вот так выводятся массивы:


 while($res1 = mysql_fetch_array($result))
            {
                $res2=$res1['text'];
                $res3 = explode ( " " , $res2);//вот здесь данные преобразуются в массивы
            }

Может нужно с помошью цикла FOR?

  Ответить  
 
 автор: Valick   (16.09.2008 в 12:05)   письмо автору
 
   для: xpom   (16.09.2008 в 11:15)
 

Напишите что у вас на входе (структура таблиц) и что у вас на выходе (что должен содержать конечный массив, да и вообще есть ли в нём необходимость). Потому как такие вещи должны решатся средствами РНР только в том случае если их нельзя решить средствами СУБД.

  Ответить  
 
 автор: xpom   (16.09.2008 в 13:10)   письмо автору
 
   для: Valick   (16.09.2008 в 12:05)
 

Структура таблицы следующая:


CREATE TABLE IF NOT EXISTS table (
      TID          INTEGER NOT NULL AUTO_INCREMENT,
      Now         INTEGER NOT NULL,
      Name      VARCHAR(150),
      obekt       text NOT NULL,
      Primary Key (TID ),
      FOREIGN KEY (Now) REFERENCES Now(TID )
    )

В этой таблице, выбираем данные исходя из значения поля Now. Поле obekt имеет данные в виде цифр записанных в строку через пробел функцией implode(" ", $per).
Дальше создаю запрос к базе:


$result = mysql_query("SELECT TID, obekt FROM table WHERE Now=".$per1,$db);


и после этого делал цикл чтобы создать массивы из поля obekt:


while($res1 = mysql_fetch_array($result))
            {
                $res2=$res1['obekt'];
                $res3 = explode ( " " , $res2);
            } 

В конечном итого необходимо получить массив из массивов, которые будут выведены из таблицы поля obekt, в этих массивах будут совпадать данные, которые нужно удалить и потом все несовпадающие вывести в виде цифр.

А вообще задумка такая, нужно вывести все цифры поля obekt, только там есть совпадающие, а вывести нужно без совпадающих, в зависимости от значения Now, и каждая цифра будет создавать новую ссылку в виде значения в переменной:
<A class=ssil href='http://www.....fail.php?region=(значение из базы данных поля obekt )' title='Ссылка ' target='_self'>Ссылка</A>

  Ответить  
 
 автор: sim5   (16.09.2008 в 13:22)   письмо автору
 
   для: xpom   (16.09.2008 в 13:10)
 

И с именем поля Now (так как вы его приписываете) у вас никаких проблем не возникает? Что означает region?

  Ответить  
 
 автор: xpom   (16.09.2008 в 13:40)   письмо автору
 
   для: sim5   (16.09.2008 в 13:22)
 

Now не знаю, это я по памяти прописал, а вообще у меня там Cas прописано, а вместо регион id_porydok= это переменная которая передается методом GET.

  Ответить  
 
 автор: sim5   (16.09.2008 в 14:00)   письмо автору
 
   для: xpom   (16.09.2008 в 13:40)
 

В MySQL существует функция NOW() для работы с датами, и негоже поля таблицы именованные зарезервированным именем прописывать так, как вы это делаете. Я понимаю, что GET, я спрашиваю о сущности этой переменной.

  Ответить  
 
 автор: Valick   (16.09.2008 в 14:19)   письмо автору
 
   для: xpom   (16.09.2008 в 13:10)
 

region=(значение из базы данных поля obekt )

и
WHERE Now=".$per1

как-то невяжутся

  Ответить  
 
 автор: xpom   (16.09.2008 в 16:21)   письмо автору
 
   для: Valick   (16.09.2008 в 14:19)
 

Да я совсем забыл про функцию NOW(), так быстро писал что не обращал внимания на названия переменных.

>
region=(значение из базы данных поля obekt )


>
WHERE Now=".$per1

>как-то невяжутся

Назовем тогда не region а obekt, правильно я понял?
Почему не вяжутся?? Ведь ссылка где используется region= нужна не для этой таблицы, а совсем для другой и других действий, она у меня никак не влияет на данную таблицу.
Мы ссылку можем не затрагивать, а просто нужно вывести числа из полученного массива в конечном итоге.

  Ответить  
 
 автор: sim5   (16.09.2008 в 16:30)   письмо автору
 
   для: xpom   (16.09.2008 в 16:21)
 

Ссылка на что-то, это ссылка на нечто уникальное в каждом случае. Вы могли бы объяснить, почему это уникальное у вас встречается в разных местах таблицы? Вот и хотелось бы узнать, что из себя представляет region (obekt в новой версии), не как имя переменной, а конечная цель.

  Ответить  
 
 автор: xpom   (16.09.2008 в 17:06)   письмо автору
 
   для: sim5   (16.09.2008 в 16:30)
 

>Вы могли бы объяснить, почему это уникальное у вас встречается в разных местах таблицы?
Что-то не совсем понятно??

Просто нужно вывести ссылки на динамические страницы на одной страницы, т.е. с разными значениями переменной region (obekt в новой версии)...

  Ответить  
 
 автор: Valick   (16.09.2008 в 17:09)   письмо автору
 
   для: xpom   (16.09.2008 в 16:21)
 

Ведь ссылка где используется region= нужна не для этой таблицы, а совсем для другой
контрольный выстрел в голову...
а варенье варить или банки с огурцами закрывать ваш скрипт не умеет случайно?
И о чём ещё нужно догадаться?

  Ответить  
 
 автор: xpom   (16.09.2008 в 17:22)   письмо автору
 
   для: Valick   (16.09.2008 в 17:09)
 

>а варенье варить или банки с огурцами закрывать ваш скрипт не умеет случайно?
не пока не умеет, не научил его еще))))

не прошу прощения ссылка используется для этой таблицы, не используется эта переменная region= для запроса к таблице, я просто построил все средствами РНР, а не СУБД....по моему там с помощью СУБД не получилось бы, а может просто мозгов у меня не хватило??

  Ответить  
 
 автор: Valick   (16.09.2008 в 17:34)   письмо автору
 
   для: xpom   (16.09.2008 в 17:22)
 

Ну дык яж не говорю, что у меня ума палата.. и что мои скрипты давно корову доят и свинюшек кормят!))) Просто приведите структуру таблиц в базе (может что там подправим сообща) и чётко сформулируйте задачу (простого вопроса "как это всунуть туда" (что - это, куда - туда и главное зачем) нехватает)

  Ответить  
 
 автор: xpom   (16.09.2008 в 18:45)   письмо автору
 
   для: Valick   (16.09.2008 в 17:34)
 

структура таблицы вот такая, единственное что, так это то что тут полей не хватает, но те поля нам никак ненужны, обычные данные в поле VARCHAR:


CREATE TABLE IF NOT EXISTS table (
      TID          INTEGER NOT NULL AUTO_INCREMENT,
      Tip           INTEGER NOT NULL,
      Name      VARCHAR(150),
      obekt        text NOT NULL,
      Primary Key (TID ),
      FOREIGN KEY (Tip) REFERENCES Tip(TID )
    ) 


структура таблицы obekt:


REATE TABLE obekt (
  idob int(5)     NOT NULL auto_increment,
  Tip int(2)       NOT NULL default '0',
  nameob        varchar(100) NOT NULL default '',
  PRIMARY KEY  (idob)
 )


структура таблицы Tip:


CREATE TABLE IF NOT EXISTS Tip (
      TPID               INTEGER NOT NULL AUTO_INCREMENT,
      TipName        VARCHAR(30),
      Primary Key (TPID)
    )


Теперь, что нужно сделать!
нужно вот из этих данных поля idob таблицы obekt, которые заносятся в таблицу table в поле obekt в виде строки с числами через запятую с помошью функции implode(" ", $arr);, а потом извлекаются в массивы с помошью функции explode ( " " , $arr), все которы не повторяются вывести в ссылку
<A class=ssil href='http://www.....fail.php?obekt=(значение из базы данных поля obekt таблицы table  )' title='(значение из поля nameob таблицы obekt ) ' target='_self'>(значение из поля nameob таблицы obekt )</A>
чтобы сделать перелинковку для поисковиков.
Вроде должно быть понятно, если че еще расскажу..

  Ответить  
 
 автор: xpom   (18.09.2008 в 11:46)   письмо автору
 
   для: xpom   (16.09.2008 в 18:45)
 

подскажите, пожалуйста, можно функцию объединения массивов array_merge() применить в цикле, т.е. массивы перечисляются в цикле???

  Ответить  
 
 автор: xpom   (18.09.2008 в 13:56)   письмо автору
 
   для: xpom   (18.09.2008 в 11:46)
 

Наверное, не возможно сделать так чтобы в цикле, если еще имеется значение, то чтобы добавлялась переменная с порядковым индексом?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования