PHP не хочет работать с 2х мерными массивами [SOLVED]

сам удивляюсь.... кодил на пхп 4 года и работал до сих пор тока под виндами...

на днях хотел написать скрипт для обработки логов сквида наткнулся на такую вот проблему =)

притом если выполнять следующее :

$a[1]="word";
$a[1]=$a;
var_dump($a);
echo $a[1][1];

все ок

НО ! если выполнить следующее


$str = file_get_contents("/psserv/squid/access_log");
preg_match_all ("'(.*[^\n])+'i",$str,$arr);
var_dump($arr[1]); 
echo $arr[1][1];

то скрипт ВООБЩЕ НЕ ВЫПОЛНИТСЯ =)
если убрать ли закомментировать echo $arr[1][1];
то выполнится =)

[ebuild   R   ] dev-lang/php-5.1.6-r6  USE="apache2 berkdb bzip2 cli crypt ftp gdbm iconv imap ldap ming mysql mysqli ncurses nls pcre postgres readline reflection session snmp sockets spl ssl unicode xml zip zlib -adabas -apache -bcmath -birdstep -calendar -cdb -cgi -cjk -concurrentmodphp -ctype -curl -curlwrappers -db2 -dbase -dbmaker -debug -discard-path -doc -empress -empress-bcs -esoob -exif -fastbuild -fdftk -filepro -firebird -flatfile -force-cgi-redirect -frontbase -gd -gd-external -gmp -hardenedphp -hash -hyperwave-api -informix -inifile -interbase -iodbc -ipv6 -java-external -kerberos -libedit -mcve -memlimit -mhash -msql -mssql -oci8 -oci8-instant-client -odbc -pcntl -pdo -pdo-external -pic -posix -qdbm -recode -sapdb -sasl -sharedext -sharedmem -simplexml -soap -solid -spell -sqlite -sybase -sybase-ct -sysvipc -threads -tidy -tokenizer -truetype -vm-goto -vm-switch -wddx -xmlreader -xmlrpc -xmlwriter -xpm -xsl -yaz" 0 kB 
[ebuild   R   ] net-www/apache-2.0.58-r2  USE="apache2 ldap ssl -debug -doc -mpm-itk -mpm-leader -mpm-peruser -mpm-prefork -mpm-threadpool -mpm-worker (-selinux) -static-modules -threads" 0 kB 

вот такая вот петрушка =)

у кого какие соображения ?

Странный скрипт, честно говоря

Если тебе нужно создать массив строк файла, то лучше пользуйся функцией file().

Re: Странный скрипт, честно говоря

Ustas написал(а):
Если тебе нужно создать массив строк файла, то лучше пользуйся функцией file().

речь не о строках в файле, а о двумерных массивах, а пример использования я привел не исходя от того что я неумею файлы построчно читать....

блин теперт предыдущий пост не удалить...

Что значит

Что значит вообще не выполняется? Добавь error_reporting(E_ALL); и покажи ошибку.
У меня кстати твой код работает.

..

Не понятно, на каком этапе скрипт работает не так, как от него ожидаешь. У тебя, скорее всего, семантическая ошибка, поэтому ты бы лучше рассказал, чего ты хочешь от скрипта.

для начала

для начала сделал вот ето, может и криво разложил строку, если есть идея как это сделать более корректно - пишите =)

function sb(){ flush(); @ob_flush();}
preg_match_all ("'(.*[^\n])+'i",file_get_contents("/psserv/squid/access_log"),$arr);
$i=0;
while (isset($arr[1][$i]))
 {echo "<b>".$i.": <u>".$arr[1][$i]."</u></b><br>";
	$subArr=preg_match("'([^\s]+)\s+(\d+) ([^\s]+) ([^\s]+) (\d+) ([^\s]+) ([^\s]+) - ([^\s]+) ([^\s]+) \[([^\]]+)'si",$arr[1][$i],$f);
   var_dump($f); 
   sb();
   $i++;
   if ($i>13) exit ("хватит");

по поводу массивов - пересобрал php и все заработало...

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".