Jump to content

kilogram

User
  • Posts

    120
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by kilogram

  1. kilogram

    РАНДОМ

    Если она определена дальше, почему тогда выдает ошибку что переменная не определена при её выводе?
  2. kilogram

    РАНДОМ

    Попробовал написать вот самое простое. for($i=0; $i < 5; $i++){ $d+=$i; } echo $d; Получается $d не снаружи и ошибка Notice: Undefined variable: d in Как эта функция тогда выводит переменную line за пределами фора?
  3. kilogram

    РАНДОМ

    Объясните вот это действие: if(mt_rand(0,$i) == 0) $line = $s; Непонятно, зачем присваивать переменную s? Что это дает? Ещё, как можно выводить $line если он объявлен внутри цикла фора, а не за её пределами?
  4. kilogram

    РАНДОМ

    Читаю тему случайные числа в книге, там такой пример, не работает чего-то. <?php $ourfile = fopen("largetextfile.txt",'r'); for($i = 0; $s = fgets($ourfile,10000); $i++){ if(mt_rand(0,$i) == 0) $line = $s; } echo $line; ?>
  5. kilogram

    Compact

    Вроде разобрался. <?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 />'; ?>
  6. kilogram

    Compact

    <?php $name = "Леонардо Давинчи"; $age = 15; $t = array("company"=>"Inmarket"); compact("name","age",$t); foreach($t as $a=>$ echo $a.' - '.$b.'<br />'; ?> Почему не добавляет функция компакт ключ со значениями в массив $t?
  7. Ещё небольшое уточнение. Почему если заменить это: 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 не меняются почему то
  8. Вот так тоже переименовывает ключи в числа. $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>';
  9. А так чтоб сохранялись ключи при замене существующего массива не получиться? $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 ) Как сделать чтоб не нумировался ключ с нуля, а подставлялось ассоциативное имя ключа?
  10. То есть при вызове функции array_slice я могу передать этой функции 4 параметра, но обязательно их должно быть как минимум 2? array_slice ( $array ,2,3, true);
  11. array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] ) Как читать правильно эту строку в документации PHP? Первый параметр означает, что переменная должна передаваться как массив, а вот второй параметр загадочно как-то, расшифруйте.
  12. Вот так правильнее, проверил секундомером с учетом если 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] . ' '; } ?>
  13. Ух-ты, вот так получилось. <?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] . ' '; } ?>
  14. Я быстро спросил, сразу просто не вышло, сейчас подумал, получилось. Вот так заработало. <?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] . ' '; }
  15. Не получается вывести двумерный массив. Читал вроде в учебнике что циклы могут не обязательно одинаковой длины строки и стобцы быть, вот попробовал написать код, чего-то не срабатывает. <?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.' '; ?>
  16. Прочитал я это в документации. Я так понял интерпретатор языка ПХП когда видит название переменной, а за ней скобки, подставляет значение этой переменной в название этой переменной со скобками,если значение этой переменной совпало с названием такой функции описаной где-то в коде.
  17. Попробовал написать такой код, который вычисляет квдадрат числа. function santa($n) { return $n*$n; } function balta($n) { return $n(5); } echo balta("santa"); echo '<br />'; Как-то странно так получилось, ради интереса написал santa в параметре функции и ошибок не выдало. Это что, получается я передал всю функцию санта в функции балта? В пхп разве если при вызове писать что-то в кавычках и оно совпадет с названием функции ранее где-то описаной в коде выше то передастся не строка ,а сама функция в качестве аргумента?
  18. <?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; Что это означает? С функцией понимаю ,а вот с переменной, как она со скобками и внутри выражение?
  19. То есть если название файла будет называться 0.txt может произойти выход из цикла случайно если не поставить сравнение типов с булевым значением false?
  20. while(false !== ($e=readdir($d)) ) Если $e не равно типу бул, значению фолс. А зачем здесь проверять на тип? Какие элементы с какими проверяются?
  21. <?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)) ) Что это за сравнение? Как расшифровывается строка?
  22. На локальном компьютере возле файла index.php лежит файл 1.txt, он открывается если ввести путь: http://text.ru/1.txt Зарегистрировался на бесплатном хостинге PHP, кинул также туда 1.txt, ввожу такое: http://santa.comoj.com/1.txt браузер ХРОМ выдает Ошибка. Ссылка не работает.
  23. function p($n){ $n = 0; if($n<6) {echo $n; $n++; } else {return false; } } p(5); Как написать рекурсивную функцию не испульзуя какие-нибудь циклы? Пробую, выводит только первый раз и все.
  24. <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 указал чтоб открывало в новом окне. Почему?
  25. Эту задачу решает по идее функция str_replace. Я хотел например в тексте, одни слова переносить и вставлять между другими словами.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy