итерация по массиву

sickboy

Новичок
итерация по массиву

hi,
есть такой массив:
PHP:
Array
(
    [0] => Array
        (
            [0] => 192.168.1.1:
PORT   STATE  SERVICE
21/tcp closed ftp
80/tcp closed 
            [1] => 192.168.1.114:
PORT   STATE  SERVICE
21/tcp closed ftp
80/tcp closed 
            [2] => 192.168.1.154:
PORT   STATE  SERVICE
21/tcp closed ftp
80/tcp closed 
        )
[1] => Array
        (
            [0] => 192.168.1.1
            [1] => 192.168.1.114
            [2] => 192.168.1.154
         )

    [2] => Array
        (
            [0] => closed
            [1] => closed
            [2] => closed
 )
    [3] => Array
        (
            [0] => closed
            [1] => closed
            [2] => closed
  )
из этого массива нужно занести в базу значения вида:
PHP:
ip                   |   ftp      |    www
192.168.1.114         | closed | closed
и .т.д для всех ip адресов.
я пошел по такому пути:
PHP:
foreach ($matches[1] as $key => $value) {
  $ins = "insert into tbl (ip, s1, s2) values ($matches[1][$key], $matches[2][$key], $matches[3][$key])";
}
но вместо $matches[1][$key] выводится Array[0], Array[1] и т.д.
но вне foreach, $matches[1][0] выводит то что надо.
 

sickboy

Новичок
PHP:
array (
  0 => 
  array (
    0 => '192.168.1.1:
PORT   STATE  SERVICE
21/tcp closed ftp
80/tcp closed ',
    1 => '192.168.1.114:
PORT   STATE  SERVICE
21/tcp closed ftp
80/tcp closed ',
    2 => '192.168.1.154:
PORT   STATE  SERVICE
21/tcp closed ftp
80/tcp closed ',
    3 => '192.168.1.187:
PORT   STATE    SERVICE
21/tcp filtered ftp
80/tcp open ',
    4 => '192.168.1.3:
PORT   STATE  SERVICE
21/tcp closed ftp
80/tcp closed ',
    5 => '192.168.1.9:
PORT   STATE  SERVICE
21/tcp closed ftp
80/tcp closed ',
  ),
1 => 
  array (
    0 => '192.168.1.1',
    1 => '192.168.1.114',
    2 => '192.168.1.154',
    3 => '192.168.1.187',
    4 => '192.168.1.3',
    5 => '192.168.1.9',
  ),
  2 => 
  array (
    0 => 'closed',
    1 => 'closed',
    2 => 'closed',
    3 => 'filtered',
    4 => 'closed',
    5 => 'closed',
  ),
  3 => 
  array (
    0 => 'closed',
    1 => 'closed',
    2 => 'closed',
    3 => 'open',
    4 => 'closed',
    5 => 'closed',
  ),
)
 

mmaaxx

Новичок
Помойму, в строке так переменные (массивы) нельзя указывать... +
вставляешь строки, а ковычек нет ...

PHP печатает:
$matches[1] - это "Array"
[$key] - это "[0]"

Попробуй
$ins = "insert into tbl (ip, s1, s2) values ('{$matches[1][$key]}', '{$matches[2][$key]}','{$matches[3][$key]}')";

или вообще вынеси за кавычки
 
Сверху