kilogram
User-
Posts
120 -
Joined
-
Last visited
-
Days Won
4
Content Type
Profiles
Forums
Calendar
Store
Everything posted by kilogram
-
Если она определена дальше, почему тогда выдает ошибку что переменная не определена при её выводе?
-
Попробовал написать вот самое простое. for($i=0; $i < 5; $i++){ $d+=$i; } echo $d; Получается $d не снаружи и ошибка Notice: Undefined variable: d in Как эта функция тогда выводит переменную line за пределами фора?
-
Объясните вот это действие: if(mt_rand(0,$i) == 0) $line = $s; Непонятно, зачем присваивать переменную s? Что это дает? Ещё, как можно выводить $line если он объявлен внутри цикла фора, а не за её пределами?
-
Читаю тему случайные числа в книге, там такой пример, не работает чего-то. <?php $ourfile = fopen("largetextfile.txt",'r'); for($i = 0; $s = fgets($ourfile,10000); $i++){ if(mt_rand(0,$i) == 0) $line = $s; } echo $line; ?>
-
Вроде разобрался. <?php $name = 'Obama'; $post = 'deputy'; $town = 'Washington'; $city = 'USA'; $t = array("name"=>"Дженефер Лопес","post"=>"певица",'town'=>'Kiev','city'=>'Ukraine'); extract($t, EXTR_OVERWRITE); echo $town.' - это столица страны '.$city.'<br />'; echo $name.' занимает должность - '.$post.'<br /><br />'; $name = 'Leonardo Da Vinci'; $post = 'artist'; $town = 'Italy'; $city = 'Rome'; $t = compact("name",'post','town','city'); echo $t['town'].' - это столица страны '.$t['city'].'<br />'; echo $t['name'].' занимает должность - '.$t['post'].'<br />'; ?>
-
Ещё небольшое уточнение. Почему если заменить это: array_splice($input,1,2,$mas); echo '<pre>'.print_r($input,1).'</pre>'; на это $d = array_splice($input,-2,2,$mas); echo '<pre>'.print_r($d,1).'</pre>'; Почему обрезания значений элементов не произойдет, а выведет просто последние 2 элемента массива без изменений? Значения последних 2-ух элементов массива $input не меняются почему то
-
Вот так тоже переименовывает ключи в числа. $mas = array("Имя1"=>"orange","Имя2"=>"magenta"); $input = array("color1"=>"red","color2"=> "green","color3"=>"blue","color4"=>"yellow"); array_splice($input,1,2,$mas); echo '<pre>'.print_r($input,1).'</pre>';
-
А так чтоб сохранялись ключи при замене существующего массива не получиться? $input = array("color1"=>"red","color2"=> "green","color3"=>"blue","color4"=>"yellow"); array_splice($input,1,count($input),"orange"); echo '<pre>'.print_r($input,1).'</pre>'; Результат: Array ( [color1] => red [0] => orange ) Как сделать чтоб не нумировался ключ с нуля, а подставлялось ассоциативное имя ключа?
-
То есть при вызове функции array_slice я могу передать этой функции 4 параметра, но обязательно их должно быть как минимум 2? array_slice ( $array ,2,3, true);
-
array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] ) Как читать правильно эту строку в документации PHP? Первый параметр означает, что переменная должна передаваться как массив, а вот второй параметр загадочно как-то, расшифруйте.
-
Вот так правильнее, проверил секундомером с учетом если 10 млн номер индекса последний, код запускается чере 14,16 сек. в браузере. <?php $trans = array( 0 => array("Мама","Папа","Дядя",), 1 => -3, 2 => 105, 3 => 500, 4 => 'Andrey', 10000000 => array("Вася","Петя","Коля") ); end($trans); $max = key($trans); for ($i = 0; $i <= $max; $i++) { if (!array_key_exists($i, $trans)) continue; if (is_array($trans[$i])) for ($j = 0; $j < count($trans[$i]); $j++) echo $trans[$i][$j] . ' '; else echo $trans[$i] . ' '; } ?>
-
Ух-ты, вот так получилось. <?php $trans = array( 0=> array("Мама","Папа","Дядя",), 1 => -3, 2 => 105, 3=>500, 4=>'Andrey', 8=> array("Вася","Петя","Коля") ); if(!empty($r))echo 'не существует'; echo '<br />'; for ($i = 0; $i < count($trans); $i++) { if(empty($trans[$i])) continue; if (is_array($trans[$i])) for ($j = 0; $j < count($trans[$i]); $j++) echo $trans[$i][$j] . ' '; else echo $trans[$i] . ' '; } ?>
-
Я быстро спросил, сразу просто не вышло, сейчас подумал, получилось. Вот так заработало. <?php $trans = array( 0=> array("Мама","Папа","Дядя",), 1 => -3, 2 => 105, 3=>500, 4=>'Andrey', 8=> array("Вася","Петя","Коля") ); foreach($trans as $x) { if (is_array($x)) foreach ($x as $y) echo $y . ' '; else echo $x . ' '; } echo 'Я справился!'; echo '<br />'; Если через фор попробовать вывести вот так, не захочет, захочет только если поменять индекс 8 на 5, странно как-то. 5=> array("Вася","Петя","Коля") for ($i = 0; $i < count($trans); $i++) { if (is_array($trans[$i])) for ($j = 0; $j < count($trans[$i]); $j++) echo $trans[$i][$j] . ' '; else echo $trans[$i] . ' '; }
-
Не получается вывести двумерный массив. Читал вроде в учебнике что циклы могут не обязательно одинаковой длины строки и стобцы быть, вот попробовал написать код, чего-то не срабатывает. <?php $trans = array( 0=> array("Мама","Папа","Дядя",), 1 => -3, 2 => 105, 3=>500, 4=>'Andrey', 8=> array("Вася","Петя","Коля") ); foreach($trans as $x) foreach($x as $y) echo $x.' '.$y.' '; ?>
-
Прочитал я это в документации. Я так понял интерпретатор языка ПХП когда видит название переменной, а за ней скобки, подставляет значение этой переменной в название этой переменной со скобками,если значение этой переменной совпало с названием такой функции описаной где-то в коде.
-
Попробовал написать такой код, который вычисляет квдадрат числа. function santa($n) { return $n*$n; } function balta($n) { return $n(5); } echo balta("santa"); echo '<br />'; Как-то странно так получилось, ради интереса написал santa в параметре функции и ошибок не выдало. Это что, получается я передал всю функцию санта в функции балта? В пхп разве если при вызове писать что-то в кавычках и оно совпадет с названием функции ранее где-то описаной в коде выше то передастся не строка ,а сама функция в качестве аргумента?
-
<?php $mas = array(5,3,-1,4,2,-300,6,-500,-100); function sos($a1,$a2) { return $a2 - $a1; } function dobavka(&$mas, $func){ sortirovka($mas, 0, count($mas)-1, $func); } function sortirovka(&$mas,$min,$max,$func){ $i = $min; $j = $max; $x = $mas[($min+$max)/2]; do{ while($func($mas[$i], $x)<0) ++$i; while($func($mas[$j], $x)>0) --$j; if($i<=$j){ $element = $mas[$i]; $mas[$i] = $mas[$j]; $mas[$j] = $element; $i++; $j--; } }while($i<=$j); if($min<$j) sortirovka($mas,$min,$j, $func); //начало с серединой if($i<$max) sortirovka($mas,$i,$max, $func); // середина с концом } dobavka($mas, 'sos'); foreach($mas as $rez) echo $rez.' '.' '; ?> Смущает, как в переменную $func можно добавить круглые скобки и записать выражение? while($func($mas[$i], $x)<0) ++$i; while($func($mas[$j], $x)>0) --$j; Что это означает? С функцией понимаю ,а вот с переменной, как она со скобками и внутри выражение?
-
То есть если название файла будет называться 0.txt может произойти выход из цикла случайно если не поставить сравнение типов с булевым значением false?
-
while(false !== ($e=readdir($d)) ) Если $e не равно типу бул, значению фолс. А зачем здесь проверять на тип? Какие элементы с какими проверяются?
-
<?php function sos($f1,$f2){ if(is_dir($f1) && !is_dir($f2)) return -1; if(!is_dir($f1) && is_dir($f2)) return 1; if($f1<$f2) return -1; elseif ($f1>$f2) return 1; else return 0; } $d = opendir('.'); while(false !== ($e=readdir($d)) ) $files[$e] = filesize($e); uksort($files,"sos"); print_r($files); ?> НЕ понятно вот это место: while(false !== ($e=readdir($d)) ) Что это за сравнение? Как расшифровывается строка?
-
На локальном компьютере возле файла index.php лежит файл 1.txt, он открывается если ввести путь: http://text.ru/1.txt Зарегистрировался на бесплатном хостинге PHP, кинул также туда 1.txt, ввожу такое: http://santa.comoj.com/1.txt браузер ХРОМ выдает Ошибка. Ссылка не работает.
-
function p($n){ $n = 0; if($n<6) {echo $n; $n++; } else {return false; } } p(5); Как написать рекурсивную функцию не испульзуя какие-нибудь циклы? Пробую, выводит только первый раз и все.
-
<html><body> <?php $st = " <strong>Жирный жираф</strong> <tt>Моноширинный текст</tt> <a href='http://www.dklab.ru' tatget='_blank'>Ссылка</a> a<x && y>d "; echo "Исходный текст: $st"; echo "<hr> После удаления тегов:".strip_tags($st,"<tt><a><target>"); ?> </body></html> Нужно чтоб ссылка открывалась в новом окне после обработки текста функцией strip_tags которая удаляет ненужные теги из строки. Во втором параметре, в котором необходимо укзаать какие теги не должно удалять,я указал, но при нажатии на ссылку она не открывается в новом окне хоть target указал чтоб открывало в новом окне. Почему?
- 1 reply
-
- 1
-
Эту задачу решает по идее функция str_replace. Я хотел например в тексте, одни слова переносить и вставлять между другими словами.