[PHP] ЗАДАНИЯ от Krist_ALL

Discussion in 'PHP' started by Krist_ALL, 20 Jun 2009.

  1. Extremal

    Extremal Elder - Старейшина

    Joined:
    21 Jun 2006
    Messages:
    66
    Likes Received:
    85
    Reputations:
    10
    Задание 018
    Есть 2 переменные a = 5 И b =7. Нужно чтобы $a =7 а $b = 5 , при этом не создавая новых переменных.
    PHP:
    <?php
    $a 
    5;
    $b 7;
    $a $a $b;
    $b $a $b;
    $a $a $b
    echo 
    "a = ".$a."<br>";    
    echo 
    "b = ".$b;
    ?>
    ЗАДАНИЕ 019
    $array = array(5,8,9,15,145,854,64,1,3,8,46,9999);
    Определить максимальное число, которое находится в массиве, и вывести его индекс.
    PHP:
    <?php
    $array 
    = array(5,8,9,15,145,854,64,1,3,8,46,9999,46);
    $max =  max($array);
    $index array_search($max $array);
    echo 
    $max."<br>".$index;
    ?>
     
    #41 Extremal, 22 Jun 2009
    Last edited: 22 Jun 2009
    1 person likes this.
  2. Krist_ALL

    Krist_ALL Banned

    Joined:
    14 Jan 2009
    Messages:
    436
    Likes Received:
    193
    Reputations:
    24
    верно! молодец
     
    1 person likes this.
  3. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    ЗАДАНИЕ 017 мне кажется или я намудрил? :D

    PHP:
    <?php

    $a 
    'qwe qqqq qqqw w zed ed';
    $arr explode(' ',$a);


    $str array_shift($arr);

    foreach(
    $arr as $k => $v)
    {
        
    $string explode(' ',$a,$k+2);
        
    array_pop($string);
        
        if(
    strripos(implode(' ',$string),$v) === false)
        {
            
    $str .= " ".$v;
        } else {
            
    $str .= " <b>".$v."</b>";
        }
    }

    echo 
    $str;

    ?>
     
  4. Krist_ALL

    Krist_ALL Banned

    Joined:
    14 Jan 2009
    Messages:
    436
    Likes Received:
    193
    Reputations:
    24
    Брр. Ну и код. Черт голову сломит! Все гораздо проще. Через регулярку.
     
  5. Extremal

    Extremal Elder - Старейшина

    Joined:
    21 Jun 2006
    Messages:
    66
    Likes Received:
    85
    Reputations:
    10
    ЗАДАНИЕ 016 от d_x
    PHP:
    <?php  
    $arr
    =Array(
    Array(
    'key1'=> 1'key2'=>3),
    Array(
    'key1'=> 8'key2'=>4),
    Array(
    'key1'=> 5'key2'=>6),
    Array(
    'key1'=> 5'key2'=>8),
    Array(
    'key1'=> 6'key2'=>9),
    Array(
    'key1'=> 3'key2'=>7),
    Array(
    'key1'=> 5'key2'=>1),
    Array(
    'key1'=> 2'key2'=>2),
    Array(
    'key1'=> 0'key2'=>0),
    Array(
    'key1'=> 2'key2'=>5)
    );

    foreach (
    $arr as $i => $row
    {
        
    $key1[$i] = $row['key1'];
        
    $key2[$i] = $row['key2'];
    }
    array_multisort($key1SORT_ASC
                    
    $key2SORT_DESC$arr);
    for(
    $i=0;$i<=count($arr);$i++){
        echo 
    $arr[$i][key1].":";
        echo 
    $arr[$i][key2]."<br>";
    }
    ?>
    Долго голову ломал над этим заданием :)
     
    1 person likes this.
  6. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    Все правильно, только я просил функцию и говорил, что ключей у массивов может быть сколько угодно.
    Вот более универсальное решение:
    PHP:
    <?php
    $arr
    =Array(
    Array(
    'key1'=> 1'key2'=>3),
    Array(
    'key1'=> 8'key2'=>4),
    Array(
    'key1'=> 5'key2'=>6),
    Array(
    'key1'=> 5'key2'=>8),
    Array(
    'key1'=> 6'key2'=>9),
    Array(
    'key1'=> 3'key2'=>7),
    Array(
    'key1'=> 5'key2'=>1),
    Array(
    'key1'=> 2'key2'=>2),
    Array(
    'key1'=> 0'key2'=>0),
    Array(
    'key1'=> 2'key2'=>5)
    ); 

    $order=Array('key1'=>'asc''key2' => 'desc');
    usort($arr'mysort');
    print_r($arr);


    function 
    mysort($a,$b)
    {
      global 
    $order;

      
    $result=0;

      foreach(
    $order as $key=>$value)
      {
        if(
    $a[$key]==$b[$key])
          continue;

        
    $result=$a[$key]<$b[$key] ? -1;
        if(
    $value=='desc'$result=-$result;

        break;
      }

      return 
    $result;
    }
    ?>  
     
  7. LEE_ROY

    LEE_ROY Elder - Старейшина

    Joined:
    9 Nov 2006
    Messages:
    450
    Likes Received:
    188
    Reputations:
    26
    мое пьяное решение )
    PHP:
    <?php

    $arr
    =Array(
                Array(
    'key1'=> 1'key2'=>3),
                Array(
    'key1'=> 8'key2'=>4),
                Array(
    'key1'=> 5'key2'=>6),
                Array(
    'key1'=> 5'key2'=>8),
                Array(
    'key1'=> 6'key2'=>9),
                Array(
    'key1'=> 3'key2'=>7),
                Array(
    'key1'=> 5'key2'=>1),
                Array(
    'key1'=> 2'key2'=>2),
                Array(
    'key1'=> 0'key2'=>0),
                Array(
    'key1'=> 2'key2'=>5)
                );

    function 
    cmp$first$second )
    {
        if (
    $first $second)    {
            return -
    1;
        }
        else {
            return 
    1;
        }
    }

    usort($arr'cmp');
    print_r($arr);

    ?> 
    исправил, теперь усе работает )
     
    #47 LEE_ROY, 23 Jun 2009
    Last edited: 24 Jun 2009
  8. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    LEE_ROY, задание уже сделали, да и я написал ответ.
    Твое решение неверное, сравнил бы вывод как должно быть и как у тебя)
     
  9. LEE_ROY

    LEE_ROY Elder - Старейшина

    Joined:
    9 Nov 2006
    Messages:
    450
    Likes Received:
    188
    Reputations:
    26
    сори, на один глаз невижу ужо :D
     
  10. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    PHP:
    <?php
    // Исходные
    $a 5;
    $b 7;
    // Решение
    $a 7;
    $b 5;
    ?>
     
    5 people like this.
  11. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    эт ты мне? реглярка? хм.. щя подумаем :D
     
  12. c0n Difesa

    c0n Difesa Member

    Joined:
    1 Jan 2009
    Messages:
    133
    Likes Received:
    66
    Reputations:
    18
    Задание 018

    PHP:
    <?php
    $b 
    $a $b;
    $a $b $a;
    $b $b $a;
    ?>
     
    #52 c0n Difesa, 23 Jun 2009
    Last edited: 23 Jun 2009
    1 person likes this.
  13. Krist_ALL

    Krist_ALL Banned

    Joined:
    14 Jan 2009
    Messages:
    436
    Likes Received:
    193
    Reputations:
    24
    Так, кто говорил что не надо про уязвимости?
    А потом мне попадаютс сайты с таким кодом if(file_exists($_GET['file'])) include($_GET['file']); УЖАС! А еще я читал что зачем морочится с филтрами если можно ве переменный передавать в POST, его же не возможно подменить! Я прям так и упал под стол.

    БЕЗОПАСНОСТЬ а не взлом в заданиях. Код должен быть безопасным - поймите вы это.

    ПО поводу коротких решений... Все учту.
     
  14. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    А можно поподробнее - почему POST нельзя подменить?
     
  15. wildshaman

    wildshaman Elder - Старейшина

    Joined:
    16 Apr 2008
    Messages:
    477
    Likes Received:
    483
    Reputations:
    99
    В том-то и соль, что есть умники, котоыре пишут вот такой вот бред, а кристалл охренел от этого :)
    Ваш К.О.
     
    1 person likes this.
  16. Krist_ALL

    Krist_ALL Banned

    Joined:
    14 Jan 2009
    Messages:
    436
    Likes Received:
    193
    Reputations:
    24
    Верно, wildshaman, такие вот умники)

    Несколько заданий щас добавлю.

    Дело в том, что я щас с компа, а скоро буду с gprs и буду реже быть на ачате - траф ужас! Как быть ХЗ.Тему не буду бросать , просто буду по реже заходить.
     
    1 person likes this.
  17. Extremal

    Extremal Elder - Старейшина

    Joined:
    21 Jun 2006
    Messages:
    66
    Likes Received:
    85
    Reputations:
    10
    Задание 021 от .:Enot:.
    PHP:
    <?php
    $num 
    5// Любая цифра 
    $array1 = array(1357911131517); 
    $array2 = array(246810);
    $array array_merge($array1,$array2);
    sort($array);  
    $text implode(","$array);
    $result1 substr($text 0$num*2-1);
    $result2 substr($text $num*2);
    $arr1 explode (","$result1);
    $arr2 explode (","$result2);
    echo 
    "<pre>";
    print_r($arr1);
    echo 
    "</pre>";
    echo 
    "<pre>";
    print_r($arr2); 
    echo 
    "</pre>";
    ?>
    $num любая
     
    1 person likes this.
  18. SleepShadowWeb

    Joined:
    2 Feb 2006
    Messages:
    26
    Likes Received:
    15
    Reputations:
    0
    21:
    PHP:
    $num 5// Любая цифра  
    $array1 = array(1357911131517);  
    $array2 = array(246810); 

    $my array_merge($array1$array2);
    array_multisort($mySORT_NUMERICSORT_ASC); 

    $rez1 array_slice($my0$num);   
    $rez2 array_slice($my$num);   

    print_r($rez1);
    print_r($rez2);
    20:
    PHP:
    function my_implode($glue$arr)
    {
    $rez "";
        foreach(
    $arr as $k=>$v)
        {
            
    $rez .= $v.$glue;
        }
    return 
    substr($rez0strlen($rez) - strlen($glue));
    }

    $arr = array('aaa''bbb''ccc');
    $rez my_implode(",,"$arr);

    print_r($rez);
    17:
    PHP:
    $str "Ламерок ламер нег полка пол ЛК";
    $w explode(" "$str);

    $rez $w[0];
    $len strlen($w[0]);
    for(
    $i 1$i count($w); $i++)
    {
        
    $s substr(strtolower($str), 0$len $i);
        
    $len += strlen($w[$i]);
        
    $pos strpos($sstrtolower($w[$i]));

        if (
    $pos === false) {
            
    $rez .= " ".$w[$i];
        } else {
            
    $rez .= " <font color=red>".$w[$i]."</font>";
        }
    }

    echo 
    $rez;
     
    1 person likes this.
  19. SleepShadowWeb

    Joined:
    2 Feb 2006
    Messages:
    26
    Likes Received:
    15
    Reputations:
    0

    работать не будет, проверь если все цифры в массивах > 10
     
  20. SleepShadowWeb

    Joined:
    2 Feb 2006
    Messages:
    26
    Likes Received:
    15
    Reputations:
    0
    23: на 10 деляться все числа, возможно в вопросе имеется ввиду без остатка
    PHP:
    function del($s
    {
        return (
    $s[1]%10)?"no":"yes";
    }

    $str='101'

    echo 
    preg_replace_callback("/(\d+)/""del"$str);

     
    1 person likes this.