Главная / Программирование /
Язык программирования PHP / Тест 7
Язык программирования PHP - тест 7
Упражнение 1:
Номер 1
Дан массив $a = array("aaa","fff",12,"c", 3)
. Проверить, существует ли в массиве число 3, не перебирая все элементы массива.
Ответ:
 (1)
<?
$a = array("aaa","fff",12,"c", "3");
if (in_array("3","$a",false)) echo"Число найдено";
else echo"Нет такого числа в массиве";
?>
 
 (2)
<?php
$a = array("aaa","fff",12,"c", 3);
if (in_array(3,$a,true) ) echo"Число найдено";
else echo"Нет такого числа в массиве";
?>
 
 (3)
<?
$a = array("aaa","fff",12,"c", 3);
if (in_array($a, "3")) echo"Число найдено";
else echo"Нет такого числа в массиве";
?>
 
Номер 2
Дан массив $b = array("23aaa","4","qww","c", 3)
. Найти в массиве число 3, не перебирая все элементы массива. Если элемент найден, вывести значение его ключа.
Ответ:
 (1)
<?php
$b = array("23aaa","4","qww","c", 3);
$index = array_search($b,"3");
if ($index === false) echo"Нет такого числа в массиве";
else { echo"Число найдено с ключом ";
echo $index;
}
?>
 
 (2)
<?php
$b = array("23aaa","4","qww","c", 3);
$index = array_search(3,$b,true);
if ($index === false) echo"Нет такого числа в массиве";
else { echo"Число найдено с ключом ";
echo $index;
}
?>
 
 (3)
<?php
$b = array("23aaa","4","qww","c", 3);
if (!array_search("3",$b)) echo"Нет такого числа в массиве";
else { echo"Число найдено с ключом ";
echo array_search("3",$b);
}
?>
 
Номер 3
Дан массив $b = array("3в","4","ууу","ааа", 4)
. Найти в массиве все элементы, значения которых равны числу 4 или строке "4". Вывести ключи этих элементов. Решить задачу, не перебирая элементы массива.
Ответ:
 (1)
<?php
$b = array("3в","4","ууу","ааа", 4);
$keys = array_keys($b,"4");
foreach ($keys as $k) echo "$k<br>";
?>
 
 (2)
<?php
$b = array("3в","4","ууу","ааа", 4);
$keys = array_keys("4",$b);
foreach ($keys as $k) echo "$k<br>";
?>
 
 (3)
<?php
$b = array("3в","4","ууу","ааа", 4);
$keys = array_keys($b,"4",true);
foreach ($keys as $k) echo "$k<br>";
?>
 
Упражнение 2:
Номер 1
Имеется массив $names = array("Иван", "Петр", "Вася", "Гена")
. Отсортировать массив по убыванию значений его элементов. Вывести полученный массив.
Ответ:
 (1)
<?php
$names = array("Иван", "Петр", "Вася", "Гена");
asort($names);
print_r($names);
?>
 
 (2)
<?php
$names = array("Иван", "Петр", "Вася", "Гена");
rsort($names);
print_r($names);
?>
 
 (3)
<?php
$names = array("Иван", "Петр", "Вася", "Гена");
usort($names,"task");
function task($a, $aa){
return ($a>$aa) ? –2 : 2;
if ($a == $aa ) return 0 ;
}
print_r($names);
?>
 
Номер 2
Имеется массив $jobs = array("машинист", "трубочист", "писатель", "вор")
. Какая программа позволяет вывести отсортированный по возрастанию значений элементов массив?
Ответ:
 (1)
<?php
$jobs = array("машинист", "трубочист", "писатель", "вор");
sort($jobs, SORT_HEIGHT);
print_r($jobs);
?>
 
 (2)
<?php
$jobs = array("машинист", "трубочист", "писатель", "вор");
sort($jobs, SORT_REGULAR);
print_r($jobs);
?>
 
 (3)
<?php
$jobs = array("машинист", "трубочист", "писатель", "вор");
usort($jobs,"task");
function task($a, $aa){
return ($a>$aa) ? –2 : 2;
if ($a == $aa ) return 0 ;
}
print_r($jobs);
?>
 
Номер 3
Имеется массив $jobs = array ( 300 =>"машинист", "мало" =>"трубочист", 500=>"писатель", "как получится" => "вор")
. Отсортировать массив по возрастанию значений его ключей. Вывести полученный массив.
Ответ:
 (1)
<?php
$jobs = array ( 300 =>"машинист", "мало" =>"трубочист", 500=>"писатель", "как получится" => "вор");
ksort($jobs);
print_r($jobs);
?>
 
 (2)
<?php
$jobs = array ( 300 =>"машинист", "мало" =>"трубочист", 500=>"писатель", "как получится" => "вор");
krsort($jobs, SORT_NUMERIC);
print_r($jobs);
?>
 
 (3)
<?php
$jobs = array ( 300 =>"машинист", "мало" =>"трубочист", 500=>"писатель", "как получится" => "вор");
uksort($jobs,"task");
function task($a, $aa){
return ($a<$aa) ? –2 : 2;
if ($a == $aa ) return 0 ;
}
print_r($jobs);
?>
 
Упражнение 3:
Номер 1
Имеется форма для выбора записи, предназначенной для удаления:
<form action=task3.php>
Запись номер 1 <input type=checkbox name=id[] value=first> <br>
Запись номер 2 <input type=checkbox name=id[] value=second> <br>
Запись номер 3 <input type=checkbox name=id[] value=third> <br>
<input type=submit value="Удалить">
</form>
После отправки данных этой формы получаем массив. Применить к каждому его элементу функцию, которая изменяет значение элемента. Вывести элементы массива до и после изменений.
Ответ:
 (1)
<?
print_r($_GET);
array_walk($_GET['id'],"test");
function test(&$val,$key){
$val = "Элемент с ключом $key и именем $val";
}
print_r($_GET);
?>
 
 (2)
<?
print_r($_SET);
array_walk($_GET,"test");
function test($val, $key){
foreach ($val as $k=> $v)
$val[$k] = "Элемент с именем $v";
}
print_r($_GET);
?>
 
 (3)
<?
print_r($_POST);
array_walk("test",$_POST);
function test(&$val,$key){
foreach ($val as $k=> $v)
$val[$k] = "Элемент с именем $v";
}
print_r($_POST);
?>
 
Номер 2
Дан массив $a = array("second","third","first");
Отсортировать значения элементов массива так, чтобы элемент third
был первым, second
– вторым, first
– третьим.
Ответ:
 (1)
<?
$a = array("second","third","first");
usort($a,"tes");
function tes($c, $d){
if ($c == "third" && $d == "second") return -1;
if ($c == "third" && $d == "first") return -1;
if ($c == "second" && $d == "third") return 1;
if ($c == "second" && $d == "first") return -1;
if ($c == "first" && $d == "second") return 1;
if ($c == "first" && $d == "third") return 1;
}
print_r($a);
?>
 
 (2)
<?
$a = array("second","third","first");
usort($a,"tes");
function tes($c, $d, $data){
if ($c == "third" && $d == "second") return -1;
if ($c == "third" && $d == "first") return -1;
if ($c == "first" && $d == "second") return 1;
if ($c == "second" && $d == "third") return 1;
if ($c == "first" && $d == "third") return 1;
if ($c==$d==$data) return 0;
}
print_r($a);
?>
 
 (3)
<?
$a = array("second","third","first");
$f = "usort";
$f($a,"tes");
function tes($c, $d){
if ($c == "third" && $d == "second") return -1;
if ($c == "third" && $d == "first") return -1;
if ($c == "second" && $d == "third") return 1;
if ($c == "second" && $d == "first") return -1;
if ($c == "first" && $d == "second") return 1;
if ($c == "first" && $d == "third") return 1;
}
print_r($a);
?>
 
Номер 3
Имеется следующая форма:
<form action=task3.php>
Запись номер 1 <input type=checkbox name=id[] value=10> <br>
Запись номер 2 <input type=checkbox name=id[] value=20> <br>
Запись номер 3 <input type=checkbox name=id[] value=30> <br>
<input type=submit value="Отправить">
</form>
Изменить значения переданных элементов, увеличив их в 10 раз. Использовать функцию array_walk()
. Вывести значения элементов до и после применения array_walk
Ответ:
 (1)
<?
print_r($_POST);
array_walk($_POST,"test");
function test(&$val,$key){
foreach ($val as $k=> $v)
$val[$k] = $v*10;
}
print_r($_POST);
?>
 
 (2)
<?
print_r($_GET);
array_walk($_GET,"test");
function test(&$val,$key){
$val = $val*10;
}
print_r($_GET);
?>
 
 (3)
<?
print_r($_GET);
array_walk($_GET,"test");
function test(&$val,$key){
foreach ($val as $k=> $v)
$val[$k] = $v*10;
}
print_r($_GET);
?>
 
Упражнение 4:
Номер 1
Данные некоторой формы отправлены на сервер методом POST
. Проверить, была ли передана переменная с именем mode
.
Ответ:
 (1)
<?php
$keys = array_keys($_REQUEST, "mode");
if ($keys) echo "Element found";
?>
 
 (2)
<?php
$keys = array_keys($_POST);
if (in_array("mode", $keys)) echo "Element found";
?>
 
 (3)
<?php
$keys = array_keys($_REQUEST);
foreach ($keys as $k) {
if ($k == "mode") echo "Element found";
}
?>
 
Номер 2
Данные некоторой формы отправлены на сервер методом GET
. Проверить, была ли передана в качестве значения какого-либо элемента формы пустая строка
Ответ:
 (1)
<?php
if (in_array("", $_GET, true)) echo "Element found";
?>
 
 (2)
<?php
if (array_search($_GET, "", true)) echo "Element found";
?>
 
 (3)
<?php
if (array_keys($_GET, "")) echo "Element found";
?>
 
Номер 3
Данные некоторой формы отправлены на сервер методом POST
. Проверить, была ли передана в качестве значения какого-либо элемента формы строка "hello"
Ответ:
 (1)
<?php
if (array($_POST, "hello", true)) echo "Element found";
?>
 
 (2)
<?php
if (array_search("hello", $_GET)) echo "Element found";
?>
 
 (3)
<?php
if (array_keys($_POST, "hello")) echo "Element found";
?>
 
Упражнение 5:
Номер 1
Данные некоторой формы отправлены на сервер. Из массива переданных данных выделить подмассив, который не содержит первого и последнего элементов исходного массива.
Ответ:
 (1)
<?php
$arr = array_slice($_REQUEST, 1, count($_REQUEST)-2);
?>
 
 (2)
<?php
$arr = array_slice($_REQUEST, 1, count($_REQUEST)-1);
?>
 
 (3)
<?php
foreach ($_REQUEST as $k => $arr)
{
if ($k <> 0 AND $k <> (count($_REQUEST)-2)) $new_arr[] = $arr;
}
?>
 
Номер 2
Данные некоторой формы переданы на сервер. Применить ко всем элементам массива переданных данных функцию my_stripslashes
и вывести измененный массив.
Ответ:
 (1)
<?php
$new_arr = array_walk($_REQUEST, "my_stripslashes");
print_r($new_arr);
?>
 
 (2)
<?php
$new_arr = array_walk($_REQUEST, "my_stripslashes");
function my_stripslashes(&$v, $k)
{
$v = stripslashes($v);
}
print_r($_REQUEST);
?>
 
 (3)
<?php
$new_arr = array_walk($_REQUEST, "my_stripslashes");
function my_stripslashes($arr)
{
foreach ($arr as $k => $v)
{
$res[$k] = stripslashes($v);
}
return $res;
}
print_r($new_arr);
?>
 
 (4)
<?php
$new_arr = array_walk($_REQUEST, "my_stripslashes");
function my_stripslashes($v, $k)
{
$v = stripslashes($v);
}
print_r($_REQUEST);
?>
 
Номер 3
Данные некоторой формы переданы на сервер. Применить ко всем элементам массива переданных данных функцию, которая берет значение этого элемента в кавычки, и вывести измененный массив.
Ответ:
 (1)
<?php
$new_arr = array_walk($_REQUEST, "my_func");
function my_func(&$v, $k)
{
$v = "'".$v."'";
}
print_r($_REQUEST);
?>
 
 (2)
<?php
$new_arr = array_walk($_REQUEST, "my_func");
function my_func($v, $k)
{
$v = "'.$v.'";
}
print_r($_REQUEST);
?>
 
 (3)
<?php
function my_func(&$v, $k)
{
$v = "'".$v."'";
}
foreach ($_REQUEST as $v)
{
my_func($v);
}
print_r($_REQUEST);
?>