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

Форум PHP

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

 

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

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

тема: Поиск в массиве
 
 автор: RV   (16.06.2005 в 08:46)   письмо автору
 
 

есть массив типа


Array
(
    [0] => ----

    [1] => Date: "Thu, 16 Jun 2005 15:02:50 +1100"

    [2] => Error #: "1045"

    [3] => Reason: "Access denied for user: 'root@localhost' (Using password: YES)"

    [4] => Filename: "E:\www\file.php"

    [5] => Line #: "22"

    [6] => IP: "343"* (звездочка)

    [7] => ----

    [8] => Date: "Thu, 16 Jun 2005 15:04:17 +1100"

    [9] => Error #: "1045"

    [10] => Reason: "Access denied for user: 'root@localhost' (Using password: YES)"

    [11] => Filename: "E:\www\file.php"

    [12] => Line #: "22"

и т.д. по кругу одна и таже структура. причем в конце каждого, так сказать, блока, есть строка IP: "...." * и звездочка в конце (для разделителя. можно поставить куда угодно и что угодно если надо).
что надо. или очень хочется.
поместить каждый блок еще в массив, чтобы потом можно было все удобно выводить. как бы так примерно сделать и куда копать. а то в файлах и массивах не силен.

а изначально это было запись в файл построчно (на конце \n ошибок бд). и потом соответственно енадо прочить этот файл (тхт) и вывести на экран в оформлении

   
 
 автор: cheops   (16.06.2005 в 11:51)   письмо автору
 
   для: RV   (16.06.2005 в 08:46)
 

Пусть этот массив находится в файле $tmp, тогда новый массив $new_tmp можно сформировать при помощи следующего скрипта.
<?php
  $i 
= -1;
  foreach(
$tmp as $line)
  {
    if(
$line == "----"$i++;
    
$new_tmp[$i][] = $line;
  }
  echo 
"<pre>";
  
print_r($new_tmp);
  echo 
"</pre>";
?>

   
 
 автор: RV   (16.06.2005 в 15:48)   письмо автору
 
   для: cheops   (16.06.2005 в 11:51)
 

что то не так

<pre>Array
(
    [-1] => Array
        (
            [0] => ----

            [1] => Date: "Thu, 16 Jun 2005 15:02:50 +1100"

            [2] => Error #: "1045"

            [3] => Reason: "Access denied for user: 'root@localhost' (Using password: YES)"

            [4] => Filename: "E:\www\file.php"

            [5] => Line #: "22"

            [6] => IP: "".

            [7] => ----

            [8] => Date и т.д. ................

а надо чтоб было

Array
(
    [0] => Array
        (
            [0] => ----

            [1] => Date: "Thu, 16 Jun 2005 15:02:50 +1100"

            [2] => Error #: "1045"

           ............................
            [6] => IP: "".
        )
    [1] => array
        (
            [0] => ----

            [1] => Date: "Thu, 16 Jun 2005 15:02:50 +1100"

            [2] => Error #: "1045"

           ............................
            [6] => IP: "".
         )
    [2] => array
        (
            [0] => ----

            [1] => Date: "Thu, 16 Jun 2005 15:02:50 +1100"

            [2] => Error #: "1045"

           ............................
            [6] => IP: "".

         )
           и т.д
)

   
 
 автор: cheops   (16.06.2005 в 19:59)   письмо автору
 
   для: RV   (16.06.2005 в 15:48)
 

Возможно там пробел после знаков ---- или перевод строки, не могли бы вы выложить кусочек исходного файла, чтобы можно было отладить скрипт?

   
 
 автор: RV   (16.06.2005 в 20:30)   письмо автору
 
   для: cheops   (16.06.2005 в 19:59)
 

вот запись в файл.

<?
$file 
fopen("db_error_log.txt" "a");
$str "----\nDate: \"" date('r') . "\"\nError #: \"" .     trim($errorn) . "\"\nReason: \"" trim($error) . "\"\nFilename: \"" trim($filename) . "\"\nLine #: \"" trim($filestring) . "\"\nIP: \"" trim($ip) . "\"*\n";
fwrite($file $str);
?>

   
 
 автор: cheops   (16.06.2005 в 20:34)   письмо автору
 
   для: RV   (16.06.2005 в 20:30)
 

Ну, если не хотите выкладывать файл с данными давайте попробуем методом тыка
<?php 
  $i 
= -1
  foreach(
$tmp as $line
  { 
    if(
$line == "----\n"$i++; 
    
$new_tmp[$i][] = $line
  } 
  echo 
"<pre>"
  
print_r($new_tmp); 
  echo 
"</pre>"
?>

Так работает?

   
 
 автор: RV   (17.06.2005 в 06:49)   письмо автору
 
   для: cheops   (16.06.2005 в 20:34)
 

вот спасибо. то что доктор прописал. а файл с данными я не понял :) Данные собственно как в первом посте. хранятся в тхт файле построчно как там и написано. если надо могу дать

   
 
 автор: cheops   (17.06.2005 в 12:48)   письмо автору
 
   для: RV   (17.06.2005 в 06:49)
 

Ну если всё работает, то файл не нужно :)))

   
Rambler's Top100
вверх

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