PHP: <?php $x = Array('127.0.0.1', '127.0.0.2', '127.0.0.2', '111.111.111.0', '127.0.0.1'); print_r(array_unique($x)); ?> результат: Code: Array ( [0] => 127.0.0.1 [1] => 127.0.0.2 [3] => 111.111.111.0 ) главной строку с ип-адрессами правильно на массив разбить UPD: тебе надо что бы выводились уникальные ипы, или уникальные диапазоны ипов?
в этом и смысл а ипы идут так: PHP: Array ( [0] => 72.73.128.0 - 72.87.47.255 ) Array ( [0] => 71.96.0.0 - 71.127.255.255 )
я правильно понимаю: PHP: Array ( [0] => Array ( [0] => 72.73.128.0 - 72.87.47.255 ) [1] => Array ( [0] => 71.96.0.0 - 71.127.255.255 ) ) ?
Составь конкретную задачу, не гадать же что ты хочешь Мне например совершенно непонятно с каким массивом нужно иметь дело. И что требуется отсеять ? Уникальные записи или диапазоны ip? Что?
А ты регулярку в прегматче напиши ровно! Как извращённый вариант записать все возможные адреса из диапазона, удалить дубли, разбить на диапазоны
$a[] = array(0,0,0,0,0); $a[] = array(0,1,1,1,0); $a[] = array(0,1,2,1,0); $a[] = array(0,1,1,1,0); $a[] = array(0,0,0,0,0);
Code: $x = 100; $y = 100; $res = Array(); for($m = 0;$m<$x;$m++) for($n = 0;$n<$y;$n++) { if($m == 0 || $n == 0 || $m == ($x-1) || $n == ($y-1)) { $res[$m][$n] = 0; }else if($m == round($x/2) && $n == round($y/2)) { $res[$m][$n] = 2; }else $res[$m][$n] = 1; } приблизительно так, не проверял правда... должно всё по краям заполниться нулями, остальное единичками, в центре 2.
не вы не поняли. должно по кругу увеличиваться - т.е 0 1 2 3 4 ... я решил, но хотелось бы увидеть более рациональные решения. --------------------------------------------------------------- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 0 0 1 2 3 3 3 3 3 3 3 3 3 3 3 3 3 2 1 0 0 1 2 3 4 4 4 4 4 4 4 4 4 4 4 3 2 1 0 0 1 2 3 4 5 5 5 5 5 5 5 5 5 4 3 2 1 0 0 1 2 3 4 5 6 6 6 6 6 6 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 7 7 7 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 8 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 8 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 7 7 7 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 6 6 6 6 6 6 5 4 3 2 1 0 0 1 2 3 4 5 5 5 5 5 5 5 5 5 4 3 2 1 0 0 1 2 3 4 4 4 4 4 4 4 4 4 4 4 3 2 1 0 0 1 2 3 3 3 3 3 3 3 3 3 3 3 3 3 2 1 0 0 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
вот это я подзапарился))) с тебя пиво! =) PHP: $x = 7; $y = 7; $counter = 0; $res = Array(); for($m = 0;$m<$x;$m++) for($n = 0;$n<$y;$n++) { $counter = $m<$n?$m:$n; $res[$m][$n] = $counter; } for($m = 0,$j = round($x/2);$m<$j;$m++) for($n = 0,$i = round($y/2);$n<$i;$n++) { $res[$x-$m-1][$y-$n-1] = $res[$m][$n]; $res[$x-$m-1][$n] = $res[$m][$n]; $res[$m][$y-$n-1] = $res[$m][$n]; } for($m = 0;$m<$x;$m++) { for($n = 0;$n<$y;$n++) { echo $res[$m][$n].' '; } echo '<br />'; } кстати пару коментов - первый цикл делает матрицу вида 0000 0111 0122 0123 а второй инверсирует левый верхний край.
хм, забавно. вот еще такой вариант PHP: function make_square($x){ //не рекомендуется больше 19 for($k=0;$k<=floor($x/2);$k++) for($i=$k;$i<=$x-$k;$i++) for($j=$k;$j<=$x-$k;$j++) if ($i==$k || $j==$k || $j==$x-$k || $i==$x-$k) $a[$i][$j]=$k; return $a;}
ну вот( а я запаривался... хотя у меня меньше сравнения и итераций =) ----------------------------------- мой скрипт от 1000 - 0.661491155624 сек этот более 30 =)
вот мой код (сделал от 0 до 100, тормозил только браузер, скрипт работал не больше секунды.. хреновы таблицы ) PHP: function olol0square($i){ if($i>0){ $j=2*$i-1; $B=array_merge(range(0,$i-1),range($i,0)); $A=array_fill(0,$i,$B); for($k=0;$k<$i;$k++) for($l=$k+1,$m=$j-$k;$l<=$m;$l++) $A[$k][$l]=$k; $A=array_merge($A,array($B),array_reverse($A)); return $A; }else return array(array(0)); } function print_square($arr){ echo "<table>"; foreach($arr as $V){ echo "<tr>"; foreach($V as $v){ echo "<td>$v</td>"; } echo "</tr>"; } echo "</table>"; } print_square(olol0square(5)); upd: без таблиц и ибраузер и скрипт меньше секунды работают, даже если выставить на 500
Вопрос нуба. Есть инет-магазин. Цены берутся из прайса, что загружается. Но есть позиции на которые цены ставить не нужно, а нужно что то типа "звоните уточняйте". Как лучше такое организовать?
нужно смотреть в БД какого типа поле с ценой Скорее всего оно числовое, я вижу такие варианты решения: 1)Поменять тип поля на символьное и установить значения "?" для товаров с неизвесной ценой (это плохой вариант - БД станет занимать больше места, минус в скорости и могут возникнуть конфликты) 2) поставить для таких товаров цену 0 или -1 3) поставить для таких товаров цену 0 или -1, но на выводе из БД сделать проверку (если цена 0, то выводим "уточните у менеджера")
На одном из сайтов много картинок с русскими буквами в именах. На домашнем серваке замечательно всё работает Картинки вида site.ru/картинка.jpg нормально открываются и отображаются. Залил на хост - там косяк. На картинка.jpg ругается 404-й. На urlencode('картинка.jpg') тоже 404 (и на rawurlencode('картинка.jpg'). Нормально отображается только в виде - %d0%e5%ec%e5%ed%fc%20.jpg Как привести все названия к такому виду? Или как заставить сервак нормально отображать их в первозданном виде? Либы, вроде, одинаковые везде включены. Версии iconv различаются, но хз, может быть из-за этого или нет...
m0Hze, не как переименовать все, а как привести строку, например, "ремень.jpg" к виду "%d0%e5%ec%e5%ed%fc.jpg". Может, есть функция подобная urlencode... Да и толку переименовывать, если файлы ещё добавляться будут.