есть массив написан руками $arr2 = array( '10.23.21.197', '10.23.21.186', '10.23.21.194', '10.23.21.193', '10.23.21.187' ); выводим на экран print_r($arr2); Выглядит так: Array ( [0] => 10.23.21.197 [1] => 10.23.21.186 [2] => 10.23.21.194 [3] => 10.23.21.193 [4] => 10.23.21.187) Все хорошо! Есть другой массив достаётся из базы sql while($row = sqlsrv_fetch_array($stmt)) { $urls=$row["ip"]; $arr1 = preg_split("/[\s,]+/",$urls); Выводим на экран print_r($arr1); Array ( [0] => 10.23.21.197 ) Array ( [0] => 10.23.21.186 ) Array ( [0] => 10.23.21.194 ) Array ( [0] => 10.23.21.193 ) Array ( [0] => 10.23.21.187 ) Вопрос как сделать так чтоб второй массив стал походить на первый?
Зачем их приводить к одному формату? Может подойти к задаче иначе и разбить строку функцией возвращающей не массив?) Что в $urls?
var_dump(is_array($urls)); ////bool(false) не массив print_r($urls); // Выводим 10.23.21.19710.23.21.18610.23.21.19410.23.21.19310.23.21.187
Да. тут идея возникла можно через регулярное выражение разделить айпихи запятыми а потом explode (',', $urls2)
она и так там в столбцах по строкам --- Добавлено --- SELECT * FROM imdb.dbo.MFUAll() а в ней while($row = sqlsrv_fetch_array($stmt)) { $urls=$row["ip"]; айпи выбираю
Эмм, а чего в прошлый раз ответил обратное? Если в $row["ip"] только 1 ip, то просто $urls[] = $row["ip"]; Если несколько ip возвращается при одной итерации цикла тогда у тебя с вероятностью 99% не правильная архитектура базы.
while($row = sqlsrv_fetch_array($stmt)) { $urls=$row["ip"]; $arr1= preg_split("/[\s,]+/",$urls); //print_r($urls); //$str = preg_replace('/(\d{2})(\d{2})/', "$1\n$2", $urls); //$arr2 = preg_split('/\n/', $str); //print_r($arr2); foreach ($arr1 as $value) { $fp = fopen('mar.txt', 'a'); fwrite($fp, $value."\r\n"); fclose($fp); } } //$arr1= preg_split("/[\s,]+/",$urls); $var = file ("mar.txt"); foreach ($var as $a) { $v = str_replace ("\r\n", "", $a); $arr9[] = $v; } $re=implode (",", $arr9); $arr = explode(',',$re); $new_arr = array_diff($arr, array('')); print_r($new_arr); Вот дурацкий обход, дело не в цикле почему тормозился snmp опрос ему не хватало времени сделали так Код (Text): print('<table style="border: 1px solid">'); tab_td("TD"); tab_td("URL"); tab_td("OID1"); tab_td("OID2"); tab_td("OID3"); $f = fopen('mar.txt', 'w'); fclose($f); /* Ïîëó÷àåì ðåçóëüòàòû çàïðîñà è âûâîäèì èõ íà ýêðàí */ while($row = sqlsrv_fetch_array($stmt)) { $urls=$row["ip"]; set_time_limit(120); $session = new SNMP(SNMP::VERSION_2c, $urls, 'public', 100000, 2); print("<tr>"); logf('- snmp get data from'. $urls); tab_td($data=date("Y-m-d H:i:s")); tab_td($urls); tab_td($oidd1=@$session->get('.1.3.6.1.2.1.25.3.2.1.5.1')); tab_td($oidd2=@$session->get('.1.3.6.1.4.1.2699.1.2.1.2.1.1.2.1')); tab_td($oidd3=@$session->get('.1.3.6.1.2.1.43.10.2.1.4.1.1')); print("</tr>"); }
я перестал понимать тебя... единственное что могу сказать так это то что твоему работодателю пора искать нового программиста. Херня какая то у тебя...
Хы, я не программист) я наверно и не буду профи в этом деле, по то му как в нашей сфере это един запросы на опрос оборудования