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

Как инициализировать многомерный массив в общем виде?

31.03.2010, 12:06. Показов 3063. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как инициализировать многомерный массив в общем виде?
есть файл, в котором присутствуют вхождения A,B,C,D. Дак вот надо, чтобы, для определенного A исклись бы вхождения B,C,D. Как представляю,
есть большой массив, в нем элементы-массивы кот. являются A, а в каждом таком массиве А будут находится уже элементы B,C,D.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.03.2010, 12:06
Ответы с готовыми решениями:

Как объявить многомерный массив и сразу инициализировать его?
Методом проб выяснил, что объявить и сразу проинициализировать многомерный массив можно так (пример с двумерным): MatrixArray: Array...

Есть ли возможность инициализировать многомерный массив, если его размерность заранее неизвестна?
Теоретический вопрос: есть ли возможность инициализировать многомерный массив, если его размерность заранее неизвестна (то есть должна быть...

Как разобрать многомерный массив и пересобрать его в нужном виде?
Добрый день. Подскажите пожалуйста по такой проблеме: Имеется JSON: string(1514) "{ "business_name":, ...

3
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
31.03.2010, 17:28
PHP
1
2
3
4
$Data = array(
    'a' => array('b', 'c', 'd'),
    'e' => array('f', 'g', 'h', 'i'),
);
0
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 4
01.04.2010, 14:22  [ТС]
блин, не могу догнать как сделать.
есть файл логов почтового сервера. В каждой строке есть определеные повторяющие поля.
Написал следующее:
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
#!/usr/local/bin/php
<?php
 
$host = "localhost";
$user = "root";
$pass = "XZ";
$db = "logs";
$link = @mysql_connect($host,$user,$pass);
#or die (не могу соединиться с БД!);
 
$f = fopen ("/var/log/maillog" ,"r") or die("не могу открыть файл");
 
if (@mysql_select_db($db, $link))
                                      {
 
#чтение файла построчно
        while (!feof($f))
        {
        $text = fgets ($f, 4096);
        $arr = preg_split("[\s]", $text, 7); #тут делю строку на 7 частей, в $arr[5] будет содержаться ID письма
#в $arr[6] будет содержаться нужные данные from, to, ip, которые чуть ниже выделил через regexp.
     
#тут наброски
#               if (preg_match ("/([a-z0-9]+)\:/i", $arr[5], $id))
#               {
#               print "$id[1]\n";
 
                if (preg_match ("/(client)=(\S+?)(\s|,)/", $arr[6], $matches))
                       {
                        $sql = mysql_query("insert into mails (`month`, `day`, `time`, `ip`)
 values('$arr[0]', '$arr[1]', '$arr[2]', '$matches[2]')");
#                       print "$matches[1]";
                       }
 
                if (preg_match ("/(from)=(\S+?)(\s|,)/", $arr[6], $matches))

Примерный вид лога:
Mar 31 17:29:26 mail postfix/virtual[95712]: 3EACD44494A: to=<test@u.su>, relay=virtual, delay=0.06, delays=0.01/0.02/0/0.03, dsn=5.1.1, status=bounced (unknown user: "test@u.su")

Вот EACD44494A это и есть id письма. Подскажите как мне связать строки в файле с одним ID, чтобы я уже потом дальше regexp'ом нарезал нужную часть?

Добавлено через 4 часа 39 минут
сделал так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#создал 2-х мерный массив
$mass = array ($arr[5] => array($arr[0],$arr[1],$arr[2],$arr[3],$arr[4],$arr[6]));
                foreach ($mass as $index)
                                                {
                                   
                if (preg_match ("/(client)=(\S+?)(\s|,)/", $mass["$arr[5]"][5], $matches))
                       {
                      }
 
                if (preg_match ("/(from)=(\S+?)(\s|,)/", $mass["$arr[5]"][5], $matche))
                       {
                       }
 
                if (preg_match ("/(to)=(\S+?)(\s|,)/", $mass["$arr[5]"][5], $match))
                       {
                       }
 
 
                        $sql = mysql_query("insert into mails (`month`, `day`, `time`, `ip`,`mail_from`,`rcpt_to`)
values($arr[0], $arr[1], $arr[2], '$matches[2]', '$matche[2]', '$match[2]')");
Теперь в Mysql заводятся данные из лога для одного id не в одну строчку, а в несколько, причем в базе после запуска скрипта могут находится пустые строки. Как все-таки привязать занесение в mysql в одну строчку для одного id?
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
01.04.2010, 23:01
Цитата Сообщение от andrey_2010 Посмотреть сообщение
Как все-таки привязать занесение в mysql в одну строчку для одного id?
Добавляй разделитель. Например так:
PHP
1
2
3
4
5
6
7
8
$a="";
for($i=0;$i<count($array);$i++){
$a.=$array[$i]."|";// | - это разделитель
}
//Потом записываешь в таблицу эту переменну $a
//Выводить можно с помощью
$b=explode("|", $a);
//Теперь $b это массив каждый индекс которого равен содержимому до |
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.04.2010, 23:01
Помогаю со студенческими работами здесь

Как записать расчет выражения по массиву в общем виде?
Вычислить y=x(0)+x(0)*x(1)+x(0)*x(1)*x(2)+...+x(0)*x(1)*...*x(m), где m  либо номер первого отрицательного элемента массива Х, либо число...

Добавление массива в многомерный массив (не элемента в многомерный массив)
Доброго времени суток уважаемые форумчане! Столкнулся с такой проблемой: требуется в многомерный массив добавить другой ассоц. массив...

Как добавить строковый массив в многомерный массив типа дабл
Добрый день! Есть такая проблема, никак не получается добавить строковый массив в многомерный массив типа double т.е. double...

Как переписать многомерный массив(матрица) с изменениями в новый массив
Здравствуйте, есть у меня двумерный массив. Если быть точнее то это матрица $maitrix = , //нумерация массивов начинается с 1 ...

Решить в общем виде
Возможно ли решить в общем виде или как то еще. х1 х2 х3 не могут быть меньше 10 х1+х2+х3=у1; 2*х1=у2; 3*х2=у2; 5*х3=у2; у2&gt;у1


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru