Этот урок набрал набрал достаточно большое количество комментариев и дальнейшее его комментирование отключено. Если вы хотели убедиться в правильности выполнения ДЗ или у вас возник вопрос по уроку, посмотрите ранее добавленные комментарии, кликнув по кнопке ниже. Скорее всего вы найдете там то, что искали. Если это не помогло - задайте вопрос в чате в телеграме - https://t.me/php_zone
Dasgonder 08.01.2018 в 13:20
first:
$array = [1, 3, 2];
sort($array);
$string = implode(":", $array);
echo $string;
second:
$array = [1, 2, 3, 4, 5];
$slice = array_slice($array, 1, 3);
var_dump($slice);
third:
$array = [1, 2, 5, 2, 3, 1, 6];
$unique = array_unique($array);
var_dump($unique);
ivashkevich 08.01.2018 в 13:47

Отлично! Я бы решал точно так же :)

[email protected] 12.05.2018 в 18:40

Есть одно, очень элегантное решение последней задачи с помощью функции array_flip. Оно в два раза быстрее функции array_unique.

$array = [1, 2, 5, 2, 3, 1, 6];
$flipFlip = array_keys(array_flip($array));
var_dump($flipFlip);
ivashkevich 12.05.2018 в 20:20

Я Вам скажу по секрету, вот так - ещё быстрее.

array_flip(array_flip($array))

При этом ещё и ключи сохранятся.

Однако, такие хаки работают только если в качестве значений в массиве будут лежать string или integer. С тем же float уже не получится:

$x = [1, 2.5];
array_flip($x);

Будет ошибка:

Warning: array_flip(): Can only flip STRING and INTEGER values!

В плане скорости - выигрыш. А под элегантностью в программировании мне привычнее понимать очевидность кода, чем его скорость работы.

Ставлю плюсик за то, что копнули поглубже :)

bratko 20.05.2019 в 16:38

А как их сразу отсортировать в данном случае? Убрали повторяющиеся значения, но хочется чтоб они сразу сортировались по возрастанию.

ivashkevich 21.05.2019 в 13:08

Только дополнительно отсортировав.

Andreo 17.01.2018 в 12:51
// 1 задание
$arr = [1, 3, 2];
sort($arr);
$nextArr = implode(':',$arr);
echo $nextArr;

// 2 задание
$arr = [1, 2, 3, 4, 5];
$nextArr = range(2,4);
var_dump($nextArr);

// 3 задание
$arr = [1, 2, 5, 2, 3, 1, 6];
$nextArr = array_unique($arr);
var_dump($nextArr);
ivashkevich 18.01.2018 в 19:35

Второе задание - некорректно. range возвращает просто массив с числами, никак не связанных с исходным массивом, вот тут правильно - https://php.zone/php-training-course/18#comment485

Остальные задания верны.

1nSide 18.04.2018 в 13:58

1

$arr = [1,3,2];
// функция sort() сортерует массив от меньшего к большему.
sort($arr);
// с помощью фуекции implode() приобразуем массив в строку.
$format = implode(':',$arr);
echo $format;
ivashkevich 18.04.2018 в 18:46

Отлично)

1nSide 18.04.2018 в 14:57

2

// заполняем массив
$arr = [1,2,3,4,5];
// с помощью функции array_splice удаляем первый и последний элемент в массиве
$output = array_splice($arr, 1 , -1);
// c помощью цикла foreach выводим оставшиеся элементы массива в браузер
foreach ($output as $value){
    echo $value . ' ';
}
ivashkevich 18.04.2018 в 18:48

Отлично!

1nSide 18.04.2018 в 15:04

3

// исходный массив
$arr = [1, 2, 5, 2, 3, 1, 6];
// array_unique функция которая удаляет повторяющиеся элементы в массиве
$output = array_unique($arr);
// выводим текущий массив в браузер
foreach ($output as $value){
    echo $value . ' ';
}
ivashkevich 18.04.2018 в 18:48

И снова отлично! =)

andropij 17.06.2018 в 17:18
1-ая задача
<?php
$array = [1, 3, 2];

asort($array);
$array = implode(";", $array);
var_dump($array);

2-ая задача
здесь я сделал два варианта. 
1-ый вариант
<?php
$array = [1, 2, 3, 4, 5];
$array2 = [];
foreach (range(2, 4) as $item) {
    array_push($array2, $item);
}
var_dump($array2);

2-ой вариант
<?php
$array = [1, 2, 3, 4, 5];
$array = array_slice($array, 1,3);
var_dump($array);

3-ая задача

<?php
$array = [1, 2, 5, 2, 3, 1, 6];
$array = array_unique($array);
var_dump($array);
ivashkevich 18.06.2018 в 05:02

Во втором задании верным будет второй вариант, так как работа идёт с исходным массивом. А так - всё правильно =) В первом задании можно было использовать просто sort(), но не принципиально.

Fox-24 14.08.2018 в 11:26

Хороший урок!)


// Есть массив чисел – [1, 3, 2].
// Отсортируйте их от меньшего к большему и преобразуйте в строку, в которой значения элементов массива разделяются двоеточиями.
// В результате должна получиться строка “1:2:3”.

$numbers = [
    1,
    3,
    2
];

sort($numbers);
$comma_separated = implode(":", $numbers);

echo $comma_separated;

// Есть массив чисел – [1, 2, 3, 4, 5].
// Получите с помощью одной функции массив, в котором будут элементы исходного с 1-го элемента по 3-й.
// В результате должен получиться массив с числами [2, 3, 4].

$numbers = [
    1,
    2,
    3,
    4,
    5
];

$output = array_slice($numbers, 1, 3);
echo var_dump($output);

// Есть массив чисел – [1, 2, 5, 2, 3, 1, 6].
// Получите такой массив, в котором каждое значение из исходного будет содержаться только один раз.
// В результате должен получиться массив, содержащий числа [1, 2, 5, 3, 6].

$numbers = [
    1,
    2,
    5,
    2,
    3,
    1,
    6
];

$result = array_unique($numbers);
echo var_dump($result);
ivashkevich 14.08.2018 в 20:30

Отлично!

artemjeka 07.09.2018 в 10:42

3

$arr = [1, 2, 5, 2, 3, 1, 6];
var_dump(array_unique($arr));

2

$arr = [1, 2, 3, 4, 5];
var_dump(array_slice($arr, 1, 3, true)); // true сохранили исходные индексы

1

$arr = [1, 3, 2];
sort($arr);
echo implode(':', $arr);
ivashkevich 07.09.2018 в 21:30

Хорошо, а почему в обратном порядке?)

SBTesla 18.09.2018 в 09:59
<?php
$array = [1, 3, 2, 4, 6, 5, 8, 7, 10, 9];
sort($array);

$numbers =  implode(':', $array);
echo  $numbers;

// Второе задание

$arrayNumbers = [1, 2,  3, 4, 5, 6, 7, 2, 4, 5,12, 3,22, "кек", "lol"];
$i = array_slice ($arrayNumbers, 1, 3);

var_dump($i);

//Третье задание

$result = array_unique($arrayNumbers, SORT_NUMERIC);
var_dump($result);

Только я не совсем понял почему флаг SORT_NUMERIC указывает последний ключ в массиве со словом, он же должен сравнивать элементы как числа, и если в массиве допустим много числовых значений и строковых как выбрать только числовые например?

ivashkevich 22.09.2018 в 20:09

Хорошо. А отфильтровать можно с помощью array_filter()

Benya 19.09.2018 в 19:34
<?php

$array = [1, 3, 2];

$sorts = asort($array);
$arraySort = implode(":", $array);

echo $arraySort;
//2 задача
$array = [1, 2, 3, 4, 5];

$arrayOutput = array_slice($array, 1, 4);

for ($i = 1; $i < count($arrayOutput); $i++) {
    echo $arrayOutput[$i];
}

//3 задача
$array = [1, 2, 5, 2, 3, 1, 6];

$arrayUnique = array_unique($array);

var_dump($arrayUnique);
ivashkevich 22.09.2018 в 20:09

Отлично!

CarfikDK 22.10.2018 в 21:56

Первое:

$arr = [1,3,2];
sort($arr);
$sorted = implode(':', $arr);
echo $sorted;

Второе:

$arr = [1,2,3,4,5];
$slicedArr = array_slice($arr,1,3);
var_dump($slicedArr);

Третье:

$arr = [1,2,5,2,3,1,6];
$uniArr = array_unique($arr);
var_dump($uniArr);
ivashkevich 23.10.2018 в 08:41

Супер!

stokato 03.11.2018 в 21:33

Есть массив чисел – [1, 3, 2]. Отсортируйте их от меньшего к большему и преобразуйте в строку, в которой значения элементов массива разделяются двоеточиями. В результате должна получиться строка “1:2:3”.

$array = [1, 3, 2];

asort($array);
echo implode(':', $array);

Есть массив чисел – [1, 2, 3, 4, 5]. Получите с помощью одной функции массив, в котором будут элементы исходного с 1-го элемента по 3-й. В результате должен получиться массив с числами [2, 3, 4].

$array = [1, 2, 3, 4, 5];

var_dump(array_slice($array, 1, 3));

Есть массив чисел – [1, 2, 5, 2, 3, 1, 6]. Получите такой массив, в котором каждое значение из исходного будет содержаться только один раз. В результате должен получиться массив, содержащий числа [1, 2, 5, 3, 6].

$array = [1, 2, 5, 2, 3, 1, 6];

var_dump(array_unique($array));
ivashkevich 04.11.2018 в 00:31

Отлично!

virtual2018 21.11.2018 в 14:19
<?php
function arrayToString(array $array, string $ch)
{
    return implode($ch, $array);
}

$arrayIn = [1, 3, 2];
echo "<p>Исходный массив задание 1:</p>";
echo '[' . arrayToString($arrayIn, ',') . ']';
echo "<p>Модифицированный массив по заданию 1:</p>";
asort($arrayIn);
echo '[' . arrayToString($arrayIn, ':') . ']';

$arrayIn = [1, 2, 3, 4, 5];
echo "<p>Исходный массив задание 2:</p>";
echo '[' . arrayToString($arrayIn, ',') . ']';
echo "<p>Модифицированный массив по заданию 2:</p>";
echo '[' . arrayToString(array_slice($arrayIn, 1, 3), ',') . ']';

$arrayIn = [1, 2, 5, 2, 3, 1, 6];
echo "<p>Исходный массив задание 3:</p>";
echo '[' . arrayToString($arrayIn, ',') . ']';
echo "<p>Модифицированный массив по заданию 3:</p>";
echo '[' . arrayToString(array_unique($arrayIn), ',') . ']';

Исходный массив задание 1:

[1,3,2]
Модифицированный массив по заданию 1:

[1:2:3]
Исходный массив задание 2:

[1,2,3,4,5]
Модифицированный массив по заданию 2:

[2,3,4]
Исходный массив задание 3:

[1,2,5,2,3,1,6]
Модифицированный массив по заданию 3:

[1,2,5,3,6]

ivashkevich 22.11.2018 в 09:30

В целом всё норм, но непонятно, зачем вместо вызова напрямую implode оборачивать её в arrayToString, которая ничего другого не делает.

Bogdan 13.12.2018 в 11:26

//Есть массив чисел – [1, 3, 2]. Отсортируйте их от меньшего к большему и преобразуйте в строку,
//в которой значения элементов массива разделяются двоеточиями. В результате должна получиться строка “1:2:3”.

$array = [1, 3, 2];
$result = (string)'';

sort($array);

foreach ($array as $key => $value) {
    $array[$key] = (string) $array[$key];
    $array[$key] != $array[count($array)-1] ? $result .= $array[$key] .':' : $result .= $array[$key];
}
unset($value);

// Есть массив чисел – [1, 2, 5, 2, 3, 1, 6]. Получите такой массив, в котором каждое значение из исходного будет
// содержаться только один раз. В результате должен получиться массив, содержащий числа [1, 2, 5, 3, 6].

$array = [1, 2, 5, 2, 3, 1, 6];
$array = array_unique($array);

//Есть массив чисел – [1, 2, 3, 4, 5]. Получите с помощью одной функции массив, в котором будут элементы исходного
// с 1-го элемента по 3-й. В результате должен получиться массив с числами [2, 3, 4].

$array = [1, 2, 3, 4, 5];

$out = array_slice($array, 1, 3);
Bogdan 13.12.2018 в 11:31

вот это я накакокодил с первым заданием ))) не нашел я implode))))

ivashkevich 14.12.2018 в 10:31
  1. Как вы уже сами сказали, можно проще. Сортировку тоже стоило встроенную использовать:

    sort($array);
    echo implode(':', $array);
  2. Ок
  3. Ок
SashkoUkraine 22.01.2019 в 13:41
<?php

$arrayNumbers = [1, 3, 2];
sort($arrayNumbers);
$stringFromArray = implode(':', $arrayNumbers);
echo $stringFromArray;

echo "<br>";

$arrayOfNumbersForCut =  [1, 2, 3, 4, 5];
$output1 = array_slice($arrayOfNumbersForCut, 1, 3);
var_dump ($output);

echo "<br>";

$randomNumber = [1, 2, 5, 2, 3, 1, 6];
$output2 = array_unique($randomNumber);
var_dump($output);
ivashkevich 23.01.2019 в 11:47

Всё ок

[email protected] 26.01.2019 в 10:01
            $arr =[1, 2, 3];
            sort($arr);
            echo implode(":",$arr);

            $arr2 =[1, 2, 3, 4, 5];
            $delElement = array_diff($arr2,[1,5]);
            var_dump($delElement);

            $arr3 =[1, 2, 5, 2, 3, 1, 6];
            $unique = array_unique($arr3);
            var_dump($unique);
ivashkevich 27.01.2019 в 10:53
  1. ОК
  2. array_slice
  3. ОК
[email protected] 29.01.2019 в 10:47

по array_slice - там же происходит сброс ключа, поэтому и выбрал array_diff
результаты:
array (size=3)
0 => int 2
1 => int 3
2 => int 4
array (size=3)
1 => int 2
2 => int 3
3 => int 4

ivashkevich 29.01.2019 в 23:34

Когда берется срез из существующего массива, ключи как правило не нужны.

[email protected] 30.01.2019 в 19:48

ок,спасибо)

excent63 26.01.2019 в 19:13

Добрый вечер!
Домашнее задание:
1:

$arr = [1,3,2];
sort($arr);
$string = implode(' : ',$arr);
echo $string;

2:

$array = [1,2,3,4,5];
$slice = array_slice($array,1,3);
var_dump($slice);

3:

$uni = [1,2,3,2,4,6,4,5,7];
$uni = array_unique($uni);
var_dump($uni);
ivashkevich 27.01.2019 в 10:53

Всё отлично!

Pro100Bah 30.01.2019 в 14:28
$array = [3, 6, 9, 99, 7, 11];
sort($array);
$arrayInString = implode(';', $array);
var_dump($arrayInString);

$array1 = [1, 2, 3, 4, 5];
$sliceOfArray = array_slice($array1, 1, 3);
var_dump($sliceOfArray);

$array2 = [1, 2, 5, 2, 3, 1, 6];
$zeroRepeats = array_unique($array2);
var_dump($zeroRepeats);

Чисто для себя скинул ДЗ, так как вариантов тут действительно не много, найти в библиотеке PHP, на которую еще и ссылку дали функции для решение задачи, но как говориться лучше сделать, чем не сделать. Спасибо за качественные уроки!!!

ivashkevich 01.02.2019 в 23:45

Отлично! Суть этой домашки - показать что в этой доке все просто и понятно)

[email protected] 04.02.2019 в 20:10
$array = [1,3,2];
asort($array);
$use = implode(":",$array);
var_dump($use);
echo '<br>';

$array_1 = [1,2,3,4,5];
$slice = array_slice($array_1,1,3);
var_dump($slice);
echo '<br>';

$array_2 = [1, 2, 5, 2, 3, 1, 6];
$unique = array_unique($array_2);
var_dump($unique);
ivashkevich 07.02.2019 в 12:48

Ок!

Luganskiy 06.02.2019 в 09:17

Сделал так, потом увидел "implode"

$ToSortTheNumbers = [1, 3, 2];
sort($ToSortTheNumbers);

echo "$ToSortTheNumbers[0] : $ToSortTheNumbers[1] : $ToSortTheNumbers[2]";

ivashkevich 07.02.2019 в 12:50

Такое решение не гибкое - если поменяется число элементов массива, то всё поломается. Если и делать, то через цикл.

alex.evg.ostr 01.03.2019 в 17:12

Правильно так ?

//1 решение
$arr= [1, 3, 2];
sort($arr);
echo $string = implode(":", $arr);

//2 решение
var_dump ($slice = array_slice($array = [1,2,3,4,5], 1, 3));

//3 решение
var_dump($unique= array_unique($arr=[1, 2, 5, 2, 3, 1, 6]));
ivashkevich 02.03.2019 в 16:50

Да. Всё верно.

ashfedor 10.03.2019 в 11:30
$array = [1, 3, 2];
sort($array);
$result = implode(":", $array);
echo  $result;

$input = [1, 2, 3, 4, 5];
$output = array_slice($input, 1, 3);
var_dump($output);

$array = [1, 2, 5, 2, 3, 1, 6];
$result = array_unique($array);
var_dump($result);
ivashkevich 11.03.2019 в 21:05

Отлично!

[email protected] 10.03.2019 в 15:37
<?php

//Задание 1
$arr = [1, 3, 2];
sort($arr);
var_dump($arr);
$arrToStr = implode(':', $arr);
var_dump($arrToStr);
//
//Задание 2
$arr2 = [1, 2, 3, 4, 5];
$arrResult = array_slice($arr2, 1, 3);
var_dump($arrResult);
//
//Задание 3
$arr3 = [1, 2, 5, 2, 3, 1, 6];
$arrResult = array_unique($arr3);

var_dump($arrResult);
//
ivashkevich 11.03.2019 в 21:06

Отлично!

Shtiher 13.03.2019 в 17:05

Первое задание:

<?php
$array = [1, 3, 2];
sort ($array);
echo implode(':', $array);

Второе задание:

<?php
$array = [1, 2, 3, 4, 5];
$output = array_slice($array, 1, 3);
echo implode(' : ', $output);

Третье задание:

<?php
$array = [1, 2, 5, 2, 3, 1, 6];
$output = array_unique($array);
echo implode(' : ', $output);
ivashkevich 14.03.2019 в 09:12

Отлично

Grewi 17.03.2019 в 01:15

При решении первой задачи не сразу нашел нужные функции получилось так:

$arr1 = [1, 3, 2];
sort($arr1);
$i = array_pop($arr1);
foreach ($arr1 as $arrInLine){
    if($arrInLine !== $i){
        echo $arrInLine.':';
    }
}
echo $i;

Второй вариант :

$arr2 = [1, 3, 2];
sort($arr2);
$i2 = implode(':',$arr2);
echo $i2;

Вторая задача:

$arrSlice = [1, 2, 3, 4, 5];
$arrSlice2 = array_slice($arrSlice,1,3);
var_dump($arrSlice2);

Третья задача:

$arrNique = [1, 2, 5, 2, 3, 1, 6];
$arrNique2 = array_unique($arrNique);
var_dump($arrNique2);
ivashkevich 17.03.2019 в 23:52

Отлично

[email protected] 17.03.2019 в 12:00

Сортировка массива и преобразование в строку

<?php
$array = [1, 3, 2];
sort($array);
$result = implode(":", $array);
echo $result;

Часть массива

<?php
$array = [1, 2, 3, 4, 5];
var_dump(array_slice($array, 1, -1));

Удаление дублей массива

<?php
$array = [1, 2, 5, 2, 3, 1, 6];
$array = array_unique($array);
var_dump($array);
ivashkevich 17.03.2019 в 23:53

Отлично

XXX 17.03.2019 в 21:00
<?php
$array = [2, 3, 6, 1, 23, 2, 56, 7, 1, 15];
sort($array);
$string=implode(":", $array);
var_dump($string);

$array2 = [1, 2, 3, 4, 5];
$array2 = array_slice($array2, 1, 3);
var_dump($array2);

$array3 = [1, 2, 5, 2, 3, 1, 6];
$array3 = array_unique($array3);
var_dump($array3);
ivashkevich 17.03.2019 в 23:53

Отлично

lilit 20.03.2019 в 19:23

Первое:

<?php
$array =   [1, 3, 2];
sort ($array);
$implode = implode(':', $array);
var_dump($implode);

Второе:

<?php
$array =  [1, 2, 3, 4, 5];
$slice =  array_slice ($array, 1, 3, true);
var_dump($slice);

Третье:

<?php
$array =   [1, 2, 5, 2, 3, 1, 6];
$unique =  array_unique ($array, SORT_STRING);
var_dump($unique);
ivashkevich 20.03.2019 в 21:13

Ок =)

Boodoo 02.04.2019 в 08:10

Есть массив чисел – [1, 3, 2]. Отсортируйте их от меньшего к большему и преобразуйте в строку, в которой значения элементов массива разделяются двоеточиями. В результате должна получиться строка “1:2:3”.

<?php

    $arr = [1,3,2];
    sort($arr);
    $str = implode(':', $arr);
    echo $str;
ivashkevich 03.04.2019 в 05:07

Отлично

Boodoo 02.04.2019 в 08:14

Есть массив чисел – [1, 2, 3, 4, 5]. Получите с помощью одной функции массив, в котором будут элементы исходного с 1-го элемента по 3-й. В результате должен получиться массив с числами [2, 3, 4].

<?php

    $arr = [1,2,3,4,5];
    array_slice($arr, 1, 3);
    var_dump($arr);
ivashkevich 03.04.2019 в 05:07

Отлично

Boodoo 02.04.2019 в 08:17

Есть массив чисел – [1, 2, 5, 2, 3, 1, 6]. Получите такой массив, в котором каждое значение из исходного будет содержаться только один раз. В результате должен получиться массив, содержащий числа [1, 2, 5, 3, 6].

<?php

    $arr = [1,2,5,2,3,1,6];
    $arr = array_unique($arr);
    var_dump($arr);
ivashkevich 03.04.2019 в 05:08

Отлично. Текст задания дублировать не надо =)

Boodoo 03.04.2019 в 06:00

Ок

artemship 16.04.2019 в 22:09
$array = [1, 3, 2];
sort($array);
$string = implode(':', $array);
echo $string;
$array = [1, 2, 3, 4, 5];
$slice = array_slice($array, 1, 3);
var_dump($slice);
$array = [1, 2, 5, 2, 3, 1, 6];
$unique = array_unique($array);
var_dump($unique);
ivashkevich 17.04.2019 в 22:19

Отлично!

[email protected] 18.04.2019 в 16:00
<?php
$array=[1,3,2];
sort($array);
$string_use=implode(':',$array);
echo $string_use;
echo '<br>'.'________________________________';
$array1=[1,2,3,4,5];
echo'<br>';
print_r(array_slice($array1,1,3));
echo '<br>'.'________________________________';
$array2=[1, 2, 5, 2, 3, 1, 6];
$uni=array_unique($array2);
sort($uni);
var_dump($uni);
ivashkevich 18.04.2019 в 16:06

Ок. Только в именах переменных не используются подчеркивания.

Dram 21.04.2019 в 15:28

Первая домашка

<?php
/*Есть массив чисел – [1, 3, 2]. Отсортируйте их от меньшего к большему и преобразуйте в строку,
в которой значения элементов массива разделяются двоеточиями.
В результате должна получиться строка “1:2:3”.
*/

$numbers = [
    1,
    2,
    3,
    4,
    8,
    7,
    6,
    5
];
sort($numbers);
echo implode(":", $numbers);
ivashkevich 21.04.2019 в 17:21

У вас массив с уже отсортированными числами

Dram 21.04.2019 в 19:24

Это не так, посмотрите внимательно.

ivashkevich 22.04.2019 в 17:17

Ок. Прошу прощения

Dram 21.04.2019 в 16:01

Вторая:

<?php
/*Есть массив чисел – [1, 2, 3, 4, 5].
Получите с помощью одной функции массив, в котором будут элементы исходного с 1-го элемента по 3-й.
В результате должен получиться массив с числами [2, 3, 4].
*/

function newArray ($newNumbers=[]){
    $numbers = [1, 2, 3, 4, 5];
    $newNumbers[] = $numbers[1];
    $newNumbers[] = $numbers[2];
    $newNumbers[] = $numbers[3];
    $rezult= implode(", ", $newNumbers);
    return $rezult;
}
echo newArray ();
ivashkevich 21.04.2019 в 17:22

array_slice - прочитайте про эту функцию. Аргументы опять никак не используются...

Dram 21.04.2019 в 19:28

Так?

<?php
function newArray ($numbers=[]){
    $newNumbers[] = $numbers[1];
    $newNumbers[] = $numbers[2];
    $newNumbers[] = $numbers[3];
    $rezult= implode(", ", $newNumbers);
    return $rezult;
}
echo newArray ($numbers = [1, 2, 3, 4, 5]);

P.S. понял, читаю про array_slice

Dram 21.04.2019 в 16:13

выполнение домашки показываю сыну (хвастаюсь), он пару лет кодит на питоне. Он говорит что так правильнее, типа универсальнее. Но почему я так и не понял

<?php
function newArray ($numbers){ 

$newNumbers[] = $numbers[1]; 
$newNumbers[] = $numbers[2]; 
$newNumbers[] = $numbers[3]; 
$rezult= implode(" ", $newNumbers); 
return $rezult; 
} 
echo newArray ([1, 2, 3, 4, 5]);
ivashkevich 21.04.2019 в 17:24

Потому что функция должна принимать на вход параметры и что-то делать, а в вашем решении все написан внутри функции, и от функции не остается никакого смысла. array_slice

Dram 21.04.2019 в 19:46

Так?

<?php
function newArray ($numbers){
    $output = array_slice($numbers, 1, 3);
    $rezult= implode(", ", $output);
    return $rezult;
}
echo newArray ($numbers = [1, 2, 3, 4, 5]);
ivashkevich 22.04.2019 в 17:19

В общем и целом да, только в этом задании не нужно было оборачивать в функцию. Ну и про передачу аргументов я вам уже писал. Просто:

newArray([1, 2, 3, 4, 5]);
Dram 21.04.2019 в 16:17

Третья... это было самое быстрое задание для меня из всех прошлых уроков :)))

<?php
/*Есть массив чисел – [1, 2, 5, 2, 3, 1, 6].
Получите такой массив, в котором каждое значение из исходного будет содержаться только один раз.
В результате должен получиться массив, содержащий числа [1, 2, 5, 3, 6].
*/

$arrey=[1, 2, 5, 2, 3, 1, 6];
$unik=array_unique ($arrey);
echo implode(", ", $unik);
ivashkevich 21.04.2019 в 17:25

Тут все хорошо

[email protected] 08.05.2019 в 17:07
$arr = [1,3,2];
sort($arr);
$string = implode(':',$arr);
echo $string;

$arr2 = [1,2,3,4,5];
$result = array_slice($arr2,1,3);
var_dump($result);

$arr3 = [1, 2, 5, 2, 3, 1, 6];
$arrResult = array_unique($arr3);
var_dump($arrResult);
ivashkevich 10.05.2019 в 13:39

Отлично

Moskva 29.05.2019 в 10:27

Код:

$arr1 = [1, 3, 2];
$arr[] = sort($arr1); // Сортируем массив в порядке возрастания
unset($arr[count($arr)-1]); // Убираем последний элемент массива, который был присвоен при сортировке
for ($i=0; $i < count($arr1);$i++) {
    if ($i>0){
        $arr1[$i] = ':'.$arr1[$i];
    }
    echo $arr1[$i];
}

$arr2 = [1, 2, 3, 4, 5];
$sortedArr = array_slice($arr2, 1, 3);
var_dump($sortedArr);

$arr3 = [1,2,5,2,3,1,6];
$nonRepeating = array_unique($arr3);
var_dump($nonRepeating);
ivashkevich 30.05.2019 в 06:28

Первое решение не годится. Посмотрите другие решения.

Moskva 26.06.2019 в 15:11

Первое задание изменил. Подсмотрел у ребят решение, спасибо за клёвые уроки.

$arr1 = [1, 3, 2];
sort($arr1); // Сортируем массив в порядке возрастания
echo implode(":", $arr1);
ivashkevich 27.06.2019 в 19:00

Отлично. Пожалуйста)

Bocha 03.06.2019 в 08:24

1.

$array = [1,3,2];
asort($array);

$stringArray = implode(";", $array);

2.

$array = [1, 2, 3, 4, 5];
$output = array_slice($array, 1,3);

3.

$array = [1, 2, 5, 2, 3, 1, 6];
$output = array_unique($array);
ivashkevich 03.06.2019 в 18:14
  1. Должно было быть через двоеточие

В целом - отлично

Bizzzon 07.07.2019 в 22:47
$array = [1, 3, 2];
sort($array);
$result = implode(':', $array);
echo $result;
$array = [1, 2, 3, 4, 5];
$result = array_slice($array, 1, 3);
var_dump($result);
$array = [1, 2, 5, 2, 3, 1, 6];
$result = array_unique($array);
var_dump($result);

3-й вариант подсмотрел в комментах, т.к не смог найти функцию

ivashkevich 08.07.2019 в 05:16

Отлично!

Reechniy 09.07.2019 в 17:00
раз:
<?php
$array1=[1, 3, 2];
asort($array1);
$string=implode(':',$array1);
echo $string;

два:

<?php
$array1=[1, 2, 3, 4, 5];
$output=array_slice($array1,1,3);
var_dump($output);

три:

<?php
$array1=[1, 2, 5, 2, 3, 1, 6];
$result=array_unique($array1);
var_dump($result);
ivashkevich 09.07.2019 в 19:04

Отлично!

kvakazuabr 16.07.2019 в 11:06

пишите здесь ваш код
`$arrNum = [1, 7, 5, 6, 2];
$arrSort = $arrNum;
sort($arrSort);
echo implode(':', $arrSort) . '<br>';
$slc = array_slice($arrNum, 1, 3);
var_dump($slc);
echo '<br>';
$arrNum2 = [1, 2, 5, 2, 3, 1, 6];
$result = array_unique($arrNum2);
var_dump($result);``
ivashkevich 17.07.2019 в 04:22

Зачем ты оставляешь строку "пишите здесь ваш код"? На ее месте нужно код писать.

По функциям - ок.

AlexxxEy 17.07.2019 в 21:46
<?php
$array = [
    3,
    4,
    2,
    9
];
sort($array);

$s = implode( ' : ', $array);
print $s;
var_dump($s);
print '</br>';

$array1 =  [1, 2, 3, 4, 5];
$r = array_slice($array1, 1, 3);
var_dump($r);
print '</br>';

$array1 =  [1, 2, 5, 2, 3, 1, 6];
$array2 = array_unique($array1, 1);
var_dump($array2);
?>
ivashkevich 18.07.2019 в 04:24

Отлично

Aleks 13.08.2019 в 15:11

Есть массив чисел – [1, 3, 2]. Отсортируйте их от меньшего к большему и преобразуйте в строку, в которой значения элементов массива разделяются двоеточиями. В результате должна получиться строка “1:2:3”.

<?php
$array = [
    1,
    3,
    2
];

sort($array);
$stringArray = implode(':', $array);
echo $stringArray;
ivashkevich 13.08.2019 в 19:37

Отлично

Aleks 13.08.2019 в 16:06

Есть массив чисел – [1, 2, 3, 4, 5]. Получите с помощью одной функции массив, в котором будут элементы исходного с 1-го элемента по 3-й. В результате должен получиться массив с числами [2, 3, 4].

<?php
$array = [
    1,
    2,
    3,
    4,
    5
];

$slice = array_slice($array, 1, 3);
var_dump($slice);
ivashkevich 13.08.2019 в 19:37

Отлично

Aleks 13.08.2019 в 16:22

Есть массив чисел – [1, 2, 5, 2, 3, 1, 6]. Получите такой массив, в котором каждое значение из исходного будет содержаться только один раз. В результате должен получиться массив, содержащий числа [1, 2, 5, 3, 6].

<?php
$array = [
   1,
   2,
   5,
   2,
   3,
   1,
   6
];
$unique = array_unique($array);
var_dump($unique);
ivashkevich 13.08.2019 в 19:37

Отлично

Vladimir96 17.08.2019 в 00:37
//Первое задание
    $fromSmallerToLarger = [
        1,
        3,
        2
    ];
    sort($fromSmallerToLarger);
    var_dump(implode(':', $fromSmallerToLarger));

    //Второе задание
    $seachThreeElements = [
        1,
        2,
        3,
        4,
        5
    ];
    var_dump(array_slice($seachThreeElements, 1, 3));

    //Третье задание
    $removeTheRepeat = [
        1,
        2,
        5,
        2,
        3,
        1,
        6
    ];
    var_dump(array_unique($removeTheRepeat));
ivashkevich 18.08.2019 в 06:48

Отлично

Ooleg 28.08.2019 в 11:55
//---Start 1---//
$numbers0 = [1, 3, 2];
sort($numbers0);
$strNumbers = implode(':', $numbers0);

echo $strNumbers;
//---End 1---//
echo '<br>';
//---Start 2---//
$numbers1 = [1, 2, 3, 4, 5];
$numbers2 = array_slice($numbers1, 1,3);

var_dump($numbers2);
//---End 2---//
echo '<br>';
//---Start 3---//
$numbers3 = [1, 2, 5, 2, 3, 1, 6];
$numbers4 = array_unique($numbers3);

var_dump($numbers4);
//---End 3---//
ivashkevich 28.08.2019 в 17:53

Отлично

Dreft 02.09.2019 в 09:24

Задание 1.

$arr = [1, 3, 2];
sort($arr);
echo implode(':', $arr);

Задание 2.

$arr = [1, 2, 3, 4, 5];
$res = array_slice($arr, 1, 3);
var_dump($res);

Задание 3.

$arr = [1, 2, 5, 2, 3, 1, 6];
$res = array_unique($arr);
var_dump($res);
ivashkevich 02.09.2019 в 10:10

Отлично. Для строк используй одинарные кавычки.

Dreft 02.09.2019 в 13:51

Поправил.

ivashkevich 02.09.2019 в 18:34

Ок

Clawson 05.09.2019 в 14:34

Задача №1

<?php
$inputArray = [1, 3, 2];
asort($inputArray);
$arrayToStr = implode(':', $inputArray);
var_dump($arrayToStr);

Задача №2

<?php
$inputArray = [1, 2, 3, 4, 5];
$sliceArray = array_slice($inputArray, 1, 3, true); //сохранил ключи для теста
var_dump ($sliceArray);

Задача №3

<?php
$inputArray = [1, 2, 5, 2, 3, 1, 6];
$arrayOfUniqueNumbs = array_unique($inputArray);
var_dump ($arrayOfUniqueNumbs);
ivashkevich 05.09.2019 в 19:42

Почему использовали asort вместо sort?

dliashchenko 25.09.2019 в 18:09
<?php
$arr =  [1, 3, 2];
sort($arr);
$stringArr = implode(':', $arr);
echo $stringArr;

echo "<br/>";

$arrNext = [1, 2, 3, 4, 5];
$arrNext = array_slice($arrNext, 1, 3);
var_dump($arrNext);

echo "<br/>";

$arrNumbers = [1, 2, 5, 2, 3, 1, 6];
$result = array_unique($arrNumbers);
var_dump($result);
ivashkevich 27.09.2019 в 18:04

Отлично

H3licoptero 27.09.2019 в 15:10
$array = [1, 3, 2];
sort($numbers);
$string = implode(': ', $numbers);
echo $string;

echo '<br>';

$number = [1, 2, 3, 4, 5];
$theChosens = array_slice($number, 1, 3, 5);
var_dump($theChosens);

echo '<br>';

$array = [1, 2, 5, 2, 3, 1, 6];
$numsWithoutRepeat = array_unique($array);
var_dump($numsWithoutRepeat);
ivashkevich 27.09.2019 в 18:04

Отлично

[email protected] 28.09.2019 в 15:01

Добрый день, не могли бы подсказать,я когда делаю сортировку массива,у меня почему-то значения ключа,по которому я делаю сортировку улетают в самый низ массива при отражении var_dump

<?php
$array = ['Первый ключ' => ['С', 'А', 'Г', 'Р',
    'ВТорой ключ' => ['И', 'А', 'У',
        'Третий ключ' => ['М', 'А']]]];
arsort($array['Первый ключ']['ВТорой ключ']);
var_dump($array);

описание картинки

ivashkevich 29.09.2019 в 12:14

Читай документацию к функции. Я даже не знаю, что ты сделать пытаешься)

Evilinside 15.10.2019 в 14:52

//Задание 1

$array = [1, 3, 2];
$str = '';
sort($array);
 echo  $str =  implode(':', $array);

//Задание 2

$array = [1, 2, 3, 4, 5];
 var_dump(array_splice($array,1,3));

//Задание 3

$array = [1, 2, 5, 2, 3, 1, 6];
var_dump(array_unique($array));
ivashkevich 15.10.2019 в 20:19

Для чего в первом задании переменная $str?

Evilinside 15.10.2019 в 21:52

Чтобы записать результат функции имплойд

ivashkevich 16.10.2019 в 05:22

Этот результат разве где-то используется? И почему ей сначала присваивается пустое значение?

kvakazuabr 17.10.2019 в 21:38
$array = [1, 3, 2];
sort($array);
echo implode(":", $array);

$array2 = array_slice([1, 2, 3, 4, 5], 1, 3);
print_r($array2);

$result = array_unique([1, 2, 5, 2, 3, 1, 6]);
print_r($result);
ivashkevich 18.10.2019 в 08:58

Супер

sar16520 18.10.2019 в 11:26
<?php 

//1 ex ======================================

function up(array $x, $y){
    sort($x);
    $y= implode($x, ':');
    return($y);
}
echo up([9,6,1,5,2,4,3,7,8], 0), '<br>';

//2 ex ======================================

$arrayS=[1,2,3,4,5];
$slice= array_slice($arrayS, 1, -1);
print_r($slice);

//3 ex ======================================

$arrayU= [1, 2, 5, 2, 3, 1, 6];
$un= array_unique($arrayU);
print_r($un);
ivashkevich 18.10.2019 в 12:37

Отлично. Фигурная скобка, открывающая тело функции, пишется на новой строке.

[email protected] 20.10.2019 в 22:31
1.
$arr = [1, 3, 2];
sort($arr);
$string = implode(':' , $arr);
var_dump($string);

2.$input = array(1, 2, 3, 4, 5);
$output = array_slice($input, 1, 3);
var_dump($output);

3.$input = array(1, 2, 5, 2, 3, 1, 6);
$result = array_unique($input);
var_dump($result);
ivashkevich 21.10.2019 в 04:58

Отлично

andreskrip 11.11.2019 в 20:05
//Есть массив чисел – [1, 3, 2]. Отсортируйте их от меньшего к большему и преобразуйте в строку, в которой значения элементов массива разделяются двоеточиями. В результате должна получиться строка “1:2:3”.
$array = [1, 3, 2];
asort($array);
echo implode(':', $array);
echo '<br><br>';

//Есть массив чисел – [1, 2, 3, 4, 5]. Получите с помощью одной функции массив, в котором будут элементы исходного с 1-го элемента по 3-й. В результате должен получиться массив с числами [2, 3, 4].
$array2 = [1, 2, 3, 4, 5];
$array2 = array_slice($array2, 1, 3);
var_dump($array2);
echo '<br><br>';

//Есть массив чисел – [1, 2, 5, 2, 3, 1, 6]. Получите такой массив, в котором каждое значение из исходного будет содержаться только один раз. В результате должен получиться массив, содержащий числа [1, 2, 5, 3, 6].
$array3 = [1, 2, 5, 2, 3, 1, 6];
$array3 = array_unique($array3);
var_dump($array3);
ivashkevich 11.11.2019 в 20:11

Во второй задаче подогнали под ответ, можно сказать. Есть специальная функция, которая берет срез массива.

andreskrip 15.11.2019 в 16:10

исправил

ivashkevich 15.11.2019 в 18:49

Отлично

[email protected] 26.11.2019 в 01:27
<?php
//Задание 1.
$arr1 = [1, 3, 2];

sort($arr1);
$arrToStr = implode(":", $arr1);

echo $arrToStr . '<br>';

//Задание 2.
$arr2 = [1, 2, 3, 4, 5];

$arr2_sliced = array_slice($arr2, 1, 3);

var_dump($arr2_sliced);
echo '<br>';

//Задание 3.
$arr3 = [1, 2, 5, 2, 3, 1, 6];

$arr3_unique = array_unique($arr3);

var_dump($arr3_unique);
ivashkevich 26.11.2019 в 10:18

Всё ок, только вместо $arr2_sliced нужно писать $arr2Sliced. camelCase для имен переменных, и никаких подчеркиваний.

[email protected] 30.11.2019 в 00:57

CamelCase? Хорошо!

ivashkevich 01.12.2019 в 09:28

Да, опечатался

[email protected] 14.12.2019 в 17:40
//Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов
function cmp($a, $b)
{
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;// если $a > $b то  в обратном порядке
}
$a = array(3,5,8,1,2,9,8);
usort($a,"cmp");
var_dump (array_unique($a));
echo "<br>";
ivashkevich 15.12.2019 в 08:10

Ну и куда подевались знания из всего что было в предыдущих уроках?

Где типы аргументов функции?

Откуда вот такое определение массива?

array()

Для чего здесь собственная функция сортировки?

Что за пробел после var_dump и перед открывающей скобкой?

Для чего вывод <br> в конце?

А без комментария непонятно?

return ($a < $b) ? -1 : 1;// если $a > $b то  в обратном порядке
Salexandr 15.12.2019 в 22:11
$array = [1, 3, 2];
sort($array);
$stringArr = implode(':', $array);
var_dump($stringArr);
ivashkevich 17.12.2019 в 13:27

Отлично

Salexandr 15.12.2019 в 22:15
$array = [1, 2, 3, 4, 5];
$slicedArr = array_slice($array,1, 3);
var_dump($slicedArr);
ivashkevich 17.12.2019 в 13:27

Отлично

Salexandr 15.12.2019 в 22:17
$array = [1, 2, 5, 2, 3, 1, 6];
$uniqArr = array_unique($array);
var_dump($uniqArr);
ivashkevich 17.12.2019 в 13:27

Отлично

YuraG 16.12.2019 в 20:59
#1
$arrayNumber = [1, 3, 2];
sort($arrayNumber);
var_dump(implode(':', $arrayNumber));

#2
$arrayNumber = [1, 2, 3, 4, 5];
$arrayValue = array_slice($arrayNumber, 1, 3);
var_dump($arrayValue);

#3
#вариант 1

$arrayNumber = [1, 2, 5, 2, 3, 1, 6];
$newArray = [];
var_dump(array_unique($arrayNumber));

#вариант 2
$arrayNumber = [1, 2, 5, 2, 3, 1, 6];
$newArrays = [];

function addValueInArrays(int $item): bool
{
    global $newArrays;

    if (in_array($item, $newArrays)) {
        return false;
    }

    array_push($newArrays, $item);
        return true;
}

array_walk($arrayNumber, 'addValueInArrays');

var_dump($newArrays);
ivashkevich 17.12.2019 в 18:24

Вариант 2 стал ужасен после:

global $newArrays;

никогда так не делайте. Глобальные переменные делают код нечитаемым и непредсказуемым.

Всё что до второго варианта - отличное решение.

[email protected] 01.01.2020 в 16:45
<?php

$array = [1, 3, 2];
sort($array);
echo implode(":", $array);
//*****************************
echo '</br>';

$array = [1, 2, 3, 4, 5];
print_r(array_slice($array, 1, 3));
//*****************************
echo '</br>';

$array = [1, 2, 5, 2, 3, 1, 6];
print_r(array_unique($array));
ivashkevich 03.01.2020 в 03:52
echo implode(":", $array);

Используйте для строк одинарные кавычки.

В остальном отлично!

eNergy 12.01.2020 в 23:45
<?php

$arrayNumbers = [1, 3, 2];
asort($arrayNumbers);
$stringArray = implode(':', $arrayNumbers);
echo $stringArray;
echo '<br>';

$arrayNumbersTwo = [1, 2, 3, 4, 5];
$arraySliceNumbers = array_slice($arrayNumbersTwo, 1, 3);
var_dump($arraySliceNumbers);
echo '<br>';

$arrayNumbersThree = [1, 2, 5, 2, 3, 1, 6];
$arrayUniqueNumbers = array_unique($arrayNumbersThree);
var_dump($arrayUniqueNumbers);
ivashkevich 15.01.2020 в 05:59

Всё ок.

Почему выбрали asort а не sort?

X-Nick 06.02.2020 в 15:57

1.

<?php
$array = [1, 3, 2];
function arraySort(array $array) {
    sort($array);
    return implode(':', $array);
}
echo arraySort($array);

2.

<?php
$arr = [1, 2, 3, 4, 5];
function arrayPart(array $array) {
    return $newArray = array_slice($array, 0, 3);
}
print_r(arrayPart($arr));

3.

<?php
$arr = [1, 2, 5, 2, 3, 1, 6];
function arrayUniq(array $array) {
    return $newArray = array_unique($array);
}
print_r(arrayUniq($arr));
ivashkevich 11.02.2020 в 15:00
return $newArray = array_slice($array, 0, 3);

Для чего в переменную записываете? Возвращайте сразу результат

Apatit 21.02.2020 в 11:49

Первое задание

<?php
$array = [1,3,2];
sort($array);
echo implode(':', $array);
?>

Второе задание

<?php
$array = [1, 2, 3, 4, 5];
print_r(array_slice($array, 1, 3));
?>

Третье задание

<?php
$array = [1, 2, 5, 2, 3, 1, 6];
print_r(array_unique($array));
?>
ivashkevich 23.02.2020 в 19:22

Отлично

[email protected] 17.03.2020 в 13:48

1)

<?php
$arr = [1,2,3];
rsort($arr);
$string = implode(':', $arr);
echo $string;
?>
ivashkevich 17.03.2020 в 13:57

Почему выбрали rsort, а не sort?

?> - закрывающий тег не нужен

[email protected] 17.03.2020 в 13:59

не правильно понял задание, перевернул, закрывающий тег ставлю по привычке.

[email protected] 17.03.2020 в 14:07

3)

<?php
$arr2 = [1,2,3,4,5];
$arr3 = [1, 2, 5, 2, 3, 1, 6];
$result = array_unique($arr3);
print_r($result);
ivashkevich 17.03.2020 в 14:11
$arr2 = [1,2,3,4,5];

Для чего это здесь?

[email protected] 17.03.2020 в 14:08

2)

<?php 
$arr2 = [1,2,3,4,5];
$KimboSlice = array_slice($arr2, 1, 3);
var_dump($KimboSlice);
ivashkevich 17.03.2020 в 14:11

Отлично. Почти. Имена переменных всегда пишутся с маленькой буквы.

[email protected] 18.03.2020 в 10:44
//первое задание
$arr = [1, 3, 2, 15, 64, 4, 9, 6, 65];
sort($arr);                    //сортируем массив по возрастанию
echo implode(':', $arr);          //выводим значения массива в строку через разделитель

echo '<br>';

//второе задание
$numbers = [1, 2, 3, 4, 5];
var_dump(array_slice($numbers, 1, 3));  //получаем срез массива

echo '<br>';

//третье задание
$numericArray = [1, 2, 5, 2, 3, 1, 6];
var_dump(array_unique($numericArray));      //массив с уникальными значениями
ivashkevich 18.03.2020 в 14:25

Отлично!

[email protected] 26.03.2020 в 19:01
<?php
$one = [1, 3, 2];
sort($one);
$two = implode(':',$one);
echo $two;
?>
[email protected] 26.03.2020 в 19:04
<?php
$one = [1, 2, 3, 4, 5, 6, 7];
$two = range(2,4);
var_dump($two);
?>
[email protected] 26.03.2020 в 19:08
<?php
$one = [1, 2, 5, 2, 5, 3, 1, 6, 1, 4];
$two = array_unique($one);
var_dump($two);
?>
ivashkevich 27.03.2020 в 05:49

Закрывающий тег не нужен!

ivashkevich 27.03.2020 в 05:49

Нет. Нужно взять именно значения из массива. Если в исходном массиве заменить 3 на 33, то и в результат должно попасть 33.
Закрывающий тег не нужен!

ivashkevich 27.03.2020 в 05:49

Закрывающий тег не нужен!

studentDev 31.03.2020 в 11:42
<?php
//Task - 1
$array = [1, 3, 2];
sort($array);
$arrayString = implode(':', $array);
echo $arrayString;

//Task - 2
$array = [1, 2, 3, 4, 5];
$arraySlice = array_slice($array, 1, 3);
var_dump($arraySlice);

//Task - 3
$array = [1, 2, 5, 2, 3, 1, 6];
$arrayUnique = array_unique($array);
var_dump($arrayUnique);
?>
ivashkevich 31.03.2020 в 11:45
  1. Неправильный порядок
  2. Ок
  3. Ок
studentDev 31.03.2020 в 12:23

Всё, исправил, простите забыл указать сортировку от наименьшего к большему )

ivashkevich 31.03.2020 в 13:22

Теперь отлично

WarLikeLaux 06.04.2020 в 15:47
$data = [1, 3, 2];

sort($data);

$result = implode(', ', $data);

var_dump($result);

echo "<br/>";

$data = [1, 2, 3, 4, 5];

$result = implode(', ', array_slice($data, 1, 3));

var_dump($result);

echo "<br/>";

$data = [1, 2, 5, 2, 3, 1, 6];

$result = implode(', ', array_unique($data));

var_dump($result);
ivashkevich 06.04.2020 в 16:12

Всё верно

Timurik 10.04.2020 в 16:12

1.

function accretiveArray (array $a) 
{
    while ($a != []) {
        foreach ($a as $key => $item) {
            if ($item == min ($a)) {
                if (count ($a) > 1) {
                    echo min ($a). ':';
                    unset ($a [$key]);
                } else {
                    echo min ($a);
                    unset ($a [$key]);
                }
            }
        }
    }
}

$a = [1,3,2];
accretiveArray ($a);

2.

$arrayNumberOne = [1,2,3,4,5];
$arrayNumberTwo = (array_slice ( $arrayNumberOne , 1 , 3 ));
var_dump ($arrayNumberTwo);

3.

$arrayNumberOne = [1, 2, 5, 2, 3, 1, 6];
$arrayNumberTwo = array_unique ($arrayNumberOne);
var_dump ($arrayNumberTwo);
ivashkevich 11.04.2020 в 20:57
  1. Чёт слишком сложно. Поищите готовые решения
  2. Ок
  3. Ок
Timurik 12.04.2020 в 10:56

Нашел готовую функцию:

$arrayOne = [1,3,2];
asort ($arrayOne);
foreach ($arrayOne as $key => $item) {
    echo $item. ':';
}
ivashkevich 13.04.2020 в 12:58

Странно ищете. Почему не нашли sort?

Timurik 13.04.2020 в 13:20

Исправил

$arrayOne = [1,3,2];
sort ($arrayOne);
foreach ($arrayOne as $key => $item) {
    echo $item. ':';
}

asort использовал для удобства дальнейшего использования массива, эту функция не меняет ключи, мне показалось удобнее.

ivashkevich 13.04.2020 в 15:01

implode ;)

Timurik 13.04.2020 в 15:05

Большое спасибо!

[email protected] 10.04.2020 в 18:46
/*
 * Есть массив чисел – [1, 3, 2].
 * Отсортируйте их от меньшего к большему и преобразуйте в строку,
 * в которой значения элементов массива разделяются двоеточиями.
 * В результате должна получиться строка “1:2:3”.
 */

$arr = [1, 3, 2];
sort($arr);
$str = implode(":", $arr);

/*
 * Есть массив чисел – [1, 2, 3, 4, 5].
 * Получите с помощью одной функции массив, в котором будут элементы исходного с 1-го элемента по 3-й.
 * В результате должен получиться массив с числами [2, 3, 4].
 */

var_dump(array_slice([1, 2, 3, 4, 5], 1, 3));

/*
 * Есть массив чисел – [1, 2, 5, 2, 3, 1, 6].
 * Получите такой массив, в котором каждое значение из исходного будет содержаться только один раз.
 * В результате должен получиться массив, содержащий числа [1, 2, 5, 3, 6].
 */

var_dump(array_unique([1, 2, 5, 2, 3, 1, 6]));
ivashkevich 11.04.2020 в 21:09

Отлично

n.yurasheva 11.04.2020 в 16:42
<?php
//Есть массив чисел – [1, 3, 2].
// Отсортируйте их от меньшего к большему и преобразуйте в строку, в которой значения элементов массива разделяются двоеточиями.
// В результате должна получиться строка “1:2:3”.
$numbers = [1, 3, 2];
asort($numbers);
echo implode(":", $numbers);

//Есть массив чисел – [1, 2, 3, 4, 5].
// Получите с помощью одной функции массив, в котором будут элементы исходного с 1-го элемента по 3-й.
// В результате должен получиться массив с числами [2, 3, 4].
$numbers = [1, 2, 3, 4, 5];
$result = array_slice($numbers, 1, 3);
var_dump($result);

//Есть массив чисел – [1, 2, 5, 2, 3, 1, 6].
// Получите такой массив, в котором каждое значение из исходного будет содержаться только один раз.
// В результате должен получиться массив, содержащий числа [1, 2, 5, 3, 6].
$numbers = [1, 2, 5, 2, 3, 1, 6];
$result = array_unique($numbers);
var_dump($result);
ivashkevich 11.04.2020 в 21:33

Отлично

Fill 13.04.2020 в 10:49
<?php

/*Есть массив чисел – [1, 3, 2]. Отсортируйте их от меньшего к большему и преобразуйте в строку,
 *в которой значения элементов массива разделяются двоеточиями.
 */
$arr = [1, 3, 2];

sort($arr);
echo implode(':', $arr) . '<br>';

/*Есть массив чисел – [1, 2, 3, 4, 5]. Получите с помощью одной функции массив,
 *в котором будут элементы исходного с 1-го элемента по 3-й.
 */

$arr =  [1, 2, 3, 4, 5];

$arr = array_slice($arr, 1,3);

var_dump($arr);
echo '<br>';

/*Есть массив чисел – [1, 2, 5, 2, 3, 1, 6]. Получите такой массив,
 *в котором каждое значение из исходного будет содержаться только один раз.
 *В результате должен получиться массив, содержащий числа [1, 2, 5, 3, 6].
 */

$arr = [1, 2, 5, 2, 3, 1, 6];

$arr = array_unique($arr);

var_dump($arr);
ivashkevich 13.04.2020 в 14:56

Отлично

[email protected] 13.04.2020 в 19:04

1 задачка

<?php

$arr = [1, 3, 2];

sort($arr);
$resultString = '';
foreach ($arr as $item) {
    $resultString .= $item . ':';
}
$resultString = rtrim($resultString, ':');

2 задачка

<?php

$arr2 = [1, 2, 3, 4, 5];

function from1to3($arr)
{
    $newArr = [];
    for ($i = 1; $i < 4; $i++) {
        $newArr[] = $arr[$i];
    }
    return $newArr;
}
$arr2New = from1to3($arr2);

И 3 задача)

<?php

$arr3 = [1, 2, 5, 2, 3, 1, 6];

$arr3Unique = [];
foreach ($arr3 as $item) {
    if (!in_array($item, $arr3Unique)) {
        $arr3Unique[] = $item;
    }
}

Или

<?php

$arr3 = [1, 2, 5, 2, 3, 1, 6];

$arr3Unique = [];
foreach ($arr3 as $item) {
    if (in_array($item, $arr3Unique)) {
        continue;
    }
    $arr3Unique[] = $item;
}
ivashkevich 14.04.2020 в 19:05

Во всех заданиях нужно использовать готовые функции

[email protected] 14.04.2020 в 19:20

Да, что то я затупил и задание не прочитал

[email protected] 15.04.2020 в 09:25

Доброе утро!

<?php
$array = [1, 3, 2];
sort($array);
$stringArray = implode(":", $array);
echo $stringArray . "</br>";

$array = [1, 2, 3, 4, 5];
$partArray = array_slice($array, 1, 3);
$stringArray = implode(":", $partArray);
echo $stringArray . "</br>";

$array = [1, 2, 5, 2, 3, 1, 6];
$uniqueArray = array_unique($array);
$stringArray = implode(":", $uniqueArray);
echo $stringArray . "</br>";
ivashkevich 15.04.2020 в 11:41

Отлично

Developer 22.04.2020 в 17:42

Приветствую, сначала все задания я сделал так:

<?php

$array = [1, 3, 2];
$count = count($array);
$i = 1;
sort($array);

foreach ($array as $x) {
    echo $x;
    if ($i < $count) {
        echo ':';
    }
    $i++;
}

echo '<br><br>';

//lesson 2

$array2 = [1, 2, 3, 4, 5];
$finishArray = [];
$finishArray = range($array2[1], $array2[3]);

var_dump($finishArray);

echo '<br><br>';

//lesson 3

$array3 = [1, 2, 5, 2, 3, 1, 6,];
$unique = array_unique($array3);

var_dump($unique);

Потом увидел что первые 2 задачи люди делают вообще не так. Я думал по той ссылке есть всё необходимое, оказывается нет. И я переделал первые 2 задачи:

<?php

$array = [1, 3, 2];
sort($array);
$x = implode(":", $array);
echo $x;

echo '<br><br>';

//lesson2

$array2 = [1, 2, 3, 4, 5];
$partOfArray = array_slice($array2, 1, 3);
var_dump($partOfArray);
ivashkevich 23.04.2020 в 10:20

Вы просто не прочитали самую первую строчку в домашнем задании)

Второй вариант отличный.

Developer 23.04.2020 в 15:23

Как раз и прочитал) Но в ссылке не нашел функций implode() и array_slice(). Думал в ссылке все необходимые функции.

[email protected] 23.04.2020 в 22:08
<?php
// Первое задание
$arr1 = [1, 3, 2];
sort($arr1);
var_dump($arr1);
echo implode(":", $arr1);

// Второе задание
$arr2 = [1, 2, 3, 4, 5];
$newArr = array_slice($arr2, 1, 3);
var_dump($newArr);

// Третье задание
$arr3 = [1, 2, 5, 2, 3, 1, 6];
var_dump(array_unique($arr3));
ivashkevich 24.04.2020 в 04:53

Отлично

[email protected] 24.04.2020 в 22:16
//1. Не встречался ранее с implode, наткнулся на неё в документации.
$array = [1, 3, 2];
sort($array);
echo implode(":", $array);
//2
$array = [1, 2, 3, 4, 5];
$slicedArray = array_slice($array, 1, 3);
var_dump($slicedArray);
//3
$array = [1, 2, 5, 2, 3, 1, 6];
$arrayOfOnes = array_unique($array);
var_dump($arrayOfOnes);
ivashkevich 25.04.2020 в 08:58

Всё отлично, только строки пишутся в одинарных кавычках!

echo implode(":", $array);
titelivus 29.04.2020 в 17:51

1.

<?php

$numbers = [1, 3, 2, 7, 4, 9, 5, 8, 6];

sort($numbers);

$string = '';
$lastIndex = count($numbers) - 1;

foreach ($numbers as $index => $item) {
    $string .= $item;
    if ($index == $lastIndex) {
        break;
    }
    $string .= ':';
}
echo $string;

2.

<?php

$numbers = [1, 2, 3, 4, 5];
$numbersSlice = array_slice($numbers, 1, 3);

3.

<?php

$numbers = [1, 2, 5, 2, 3, 1, 6];
$newArr = array_unique($numbers);
ivashkevich 29.04.2020 в 20:29

В первом решении не выполнено самое первое требование ДЗ - нужно использовать готовые функции.

Stimi 30.04.2020 в 18:07
<?php
$a = [1, 3, 2];
array_multisort($a);
$arrString = implode(":", $a);
echo $arrString;

echo '<br>';

$input =[1, 2, 3, 4, 5];
$output = array_slice($input, 1, 3);
var_dump($output);

echo '<br>';

$arr = [1, 2, 5, 2, 3, 1, 6];
$result = array_unique($arr);
var_dump($result);
ivashkevich 30.04.2020 в 19:14
$arrString = implode(":", $a);

Строки пишутся в одинарных кавычках!

Stimi 30.04.2020 в 23:13
<?php
$a = [1, 3, 2];
array_multisort($a);
$arrString = implode(':', $a);
echo $arrString;
ivashkevich 01.05.2020 в 15:03

Отлично!

Sviatoslav 02.05.2020 в 21:05
<?php
// Задание 1

$array = [1, 3, 2];
sort($array);
foreach ($array as $value) {
    echo $value;
    if ($value != end($array)) {
        echo ':';
    }
}

// Задание 2

$array = [1, 2, 3, 4, 5];
$newArray = array_slice($array, 1, 3);

// Задание 3

$array = [1, 2, 5, 2, 3, 1, 6];
$newArray = array_unique($array);
ivashkevich 03.05.2020 в 20:53

implode :)

[email protected] 03.05.2020 в 00:14
$array = [1, 3, 2, 5, 4];
sort($array);
echo implode(': ', $array);
$arr = [1, 2, 3, 4, 5];
$result = array_slice($arr, 1, 3);
var_dump($result);
$arr = [1, 2, 5, 2, 3, 1, 6];
$result = array_unique($arr);
var_dump($result);
ivashkevich 03.05.2020 в 20:55

Отлично

[email protected] 03.05.2020 в 12:18
<?php //Задание №1

$arr = [1, 3, 2];
sort($arr);
echo implode(':', $arr);

//Задание №2

$arr = [1,2,3,4,5];
$result = array_slice($arr,1,3);
var_dump($result);

//Задание №3

$arr = [1,2,5,2,3,1,6];
var_dump(array_unique($arr));
ivashkevich 03.05.2020 в 20:58

Отлично

IePyton 12.05.2020 в 17:24
<?php

//первое задание

$array1 = [
    1,
    3,
    2
];

sort($array1);

$numberIndex = count($array1);
$index = 0;
foreach ($array1 as $index => $value) {
    $index++;
    if ($index !== $numberIndex) {
        echo $value . ' : ';
    } else {
        echo $value;
    }

}

<?php

//второе задание

$array2 = [
    1,
    2,
    3,
    4,
    5
];

$offset = 1;
$lenth = 3;

$arraySlice = array_slice($array2, $offset, $lenth);

var_dump($arraySlice);

<?php

//третье задание

$array3 = [
    1,
    2,
    5,
    2,
    3,
    1,
    6
];

    $uniqArray = array_unique($array3);
var_dump($uniqArray);
ivashkevich 13.05.2020 в 07:22

implode =)

IePyton 13.05.2020 в 07:46

а так намного проще))

<?php

//первое задание

$array1 = [
    1,
    3,
    2
];

sort($array1);

$sort_array = implode(' : ', $array1);

echo $sort_array;
ivashkevich 14.05.2020 в 12:46

Отлично, только имена переменных в lowerCamelCase, без подчеркиваний

IePyton 14.05.2020 в 13:01
<?php

//первое задание

$array1 = [
    1,
    3,
    2
];

sort($array1);

$sortArray = implode(' : ', $array1);

echo $sortArray;
ivashkevich 14.05.2020 в 15:12

Супер

Kennard 16.05.2020 в 03:41
<?php
// 1
$array = [1, 3, 2];

sort($array);

$newArray = implode(":", $array);
echo $newArray;

// 2
<?php

$array = [1, 2, 3, 4, 5];

$newArray = array_slice($array, 1, 3);

var_dump($newArray);

// 3

https://codingzone.io/problems/5/solution/417

ivashkevich 16.05.2020 в 12:21

Отлично. В 3-ем задании можно было тоже implode воспользоваться.

happyviolence 19.05.2020 в 21:42
<?php
//часть 1: Отсортировать значения массива от меньшего к большему
// и преобразовать их в строку, в которой значения элементов
// массива разделяются двоеточиями
$numbers = [
    1,
    3,
    2,
];
sort($numbers);
echo implode(':', $numbers);

//часть 2: Получить с помощью одной функции массив, в котором
// будут элементы исходного с 1-го элемента по 3-й
$numbers = [
    1,
    2,
    3,
    4,
    5
];
var_dump(array_slice($numbers, 1, 3));

//часть 3: Удалить все повторы чисел и отсортировать числа в порядке возрастания.
// Вывести их, разделив пробелами.
$string = '0 2 3 1 2';
$numbers = array_unique(explode(' ', $string));
sort($numbers);
echo implode(' ', $numbers);
ivashkevich 20.05.2020 в 08:05

В третьем задании нужно было приложить ссылку на решение. В остальном всё ок.

superbobr 20.05.2020 в 10:37

<?php

$arr = [1, 3, 2];

asort($arr);

$newStr = implode(':', $arr);

echo $newStr;

<?php

$arr = [1, 2, 3, 4, 5];

$newArr = array_slice($arr, 1, 3);

var_dump($newArr);

https://codingzone.io/ru/problems/5/solution/741

ivashkevich 20.05.2020 в 18:36

Отлично! В последней задачке можно было также воспользоваться implode

Hellbound 22.05.2020 в 01:58

Задание 1

<?php

$array = [1, 3, 2];
sort($array);
$arrayString = implode(':', $array);

echo $arrayString;

Задание 2

<?php

$array = [1, 2, 3, 4, 5];
$slice = array_slice($array, 1, 3);

var_dump($slice);

Задание 3 - https://codingzone.io/problems/5/solution/920

ivashkevich 22.05.2020 в 08:18

Отлично

GeoOK 27.05.2020 в 09:38

1 Задание

<?php

$array = [
    1,
    3,
    2
];

sort ($array, SORT_NATURAL);
var_dump(implode(":", $array));

2 Задание

<?php

$array = [
    1,
    2,
    3,
    4,
    5
];

var_dump(array_slice($array, 1, 3));

3 Задание
https://codingzone.io/problems/5/solution/1560

ivashkevich 27.05.2020 в 18:04

Для чего SORT_NATURAL в первом задании?

GeoOK 28.05.2020 в 14:05

Согласен, не зачем, и в 3-м задании в том числе. Самостоятельно экспериментировал с сортировкой строк с различными флагами, а потом забыл удалить.

[email protected] 28.05.2020 в 01:23

1

$input = [1, 3, 2];
asort($input);
$toString = implode(':', $input);

echo $toString;

2

$black = [1, 2, 3, 4, 5];
$output = array_slice($black, 0, 3);
var_dump($output);

3
https://codingzone.io/problems/5/solution/1658

ivashkevich 28.05.2020 в 20:36
asort($input)

Почему не просто sort?

На cz смысл в написании алгоритма самостоятельно, без использования готовых функций.

[email protected] 28.05.2020 в 22:34

asort стоял первый в списке на сайте оф. документации. По пути наименьшего сопротивления.) А на разницу между ними я обратил внимание.
По cz вы имеете ввиду, что нужно самостоятельным алгоримом заменить функцию array_unique?

ivashkevich 29.05.2020 в 05:29

Ага

[email protected] 03.06.2020 в 16:27
<?php
//задача первая
$sum = array('1', '3', '2');
asort($sum);
$str = implode(':', $sum);
echo "$str";

echo '<br><br>';
//задача вторая
$num = [
    1,
    2,
    3,
    4,
    5
];

$a = array_slice($num, 1, 3);
echo var_dump($a);
ivashkevich 03.06.2020 в 19:07
$sum = array('1', '3', '2');

Почему старый синтаксис используете? Почему вместо int стоки?

asort($sum);

Почему не просто sort?

echo "$str";

Для чего здесь кавычки?

echo var_dump($a);

Для чего здесь echo?

[email protected] 04.06.2020 в 13:14

От старого синтаксиса постараюсь отучится.
asort сортирует массив и сохраняет ключ, поэтому решил попробовать, просто интересно было можно ли им заменить sort. Результат выражения получился схожим. Поэтому решил его оставить.
По поводу кавычек, это невнимательность моя, признаю как и то что перед var_dump echo написал (уберу его).
P. S. Понимаю что некорректно то что я делаю, но порой чисто из интереса пробую нестандартные пути.

<?php
$sum = [1, 3, 2];
sort($sum);
$str = implode(":", $sum);
echo $str;
ivashkevich 06.06.2020 в 08:04

Строки пишутся в одинарных кавычках

mrKrupin 30.06.2020 в 13:00

3 задачка:

<?php
$line = trim(fgets(STDIN));
$array = explode(' ', $line);
$unique = array_unique($array);
echo implode(' ', $unique);

Или все же лучше foreach использовать?

ivashkevich 01.07.2020 в 18:17

И так и так норм

UtillitE 01.07.2020 в 22:34

Привет, первая задача очень простая :)))

<?php
$array = [1, 3, 2];
$array1 = [];
$n = 1;
for ($n = 1; $n <= 3; $n++) {
    if (in_array($n, $array)) {
        $array1 [] = $n;
    }
}
$input = implode(':', $array1);
echo $input;
UtillitE 01.07.2020 в 23:40

Вторая тоже не сложная.

<?php
$input = [1, 2, 3, 4, 5];
print_r(array_slice($input, 1, 3));
ivashkevich 02.07.2020 в 08:12

Тут всё ок.

ivashkevich 02.07.2020 в 08:11

Крайне неоптимальное решение. Не гибкое. Если вдруг в исходном массиве изменится количество элементов или значения чисел, всё надо будет переписывать. Алгоритм должен быть таким, чтобы после изменения входных данных программа продолжала работать. А тут какой-то подгон под ответ.

UtillitE 02.07.2020 в 08:56

Да, я уже нашла функцию sort. :))))))

<?php
$array = [1, 3, 2];
sort($array);
$output = implode(':', $array);
echo $output;
ivashkevich 02.07.2020 в 09:06

пробел после имени функции не ставится. имя переменной input не подходит, это скорее уже output

UtillitE 02.07.2020 в 09:06

Третья задача

<?php
$line = trim(fgets(STDIN));
$line = explode(' ', $line);
$result = array_unique($line);
$result = implode(' ', $result);
echo $result;
UtillitE 02.07.2020 в 14:30

Исправила!

VitaliyB 20.07.2020 в 19:20
  1. $num = [1, 3, 2];
    sort($num);
    $string = implode(", ", $num);
    echo $string;
  2. $num = [1, 2, 3, 4, 5];
    $output = array_slice($num, 1, -1);
    $string = implode(", ", $output);
    echo $string;
  3. $num = [1, 3, 5, 2, 2, 1, 6];
    $output = array_unique($num);
    foreach ($output as $value) {
    echo $value . ' ';
    }
ivashkevich 21.07.2020 в 12:04

Строки пишутся в одинарных кавычках.

Проблема с форматированием. Делайте отступы и переносы как в уроках. Для этого в шторме можно нажать Ctrl+Alt+L

Nobody 05.08.2020 в 10:26
    //Есть массив чисел – [1, 3, 2].
    //Отсортируйте их от меньшего к большему и преобразуйте в строку,
    //в которой значения элементов массива разделяются двоеточиями.
    //В результате должна получиться строка “1:2:3”.

        $numArr = [1, 3, 2];
        function func($numArr) {
            sort($numArr);
            echo $strNum = implode(":", $numArr);
        }
        func($numArr);

        echo '<br/> <hr/> <br/>';

    //Есть массив чисел – [1, 2, 3, 4, 5].
    //Получите с помощью одной функции массив,
    //в котором будут элементы исходного с 1-го элемента по 3-й.
    //В результате должен получиться массив с числами [2, 3, 4].

        $numArray = [1, 2, 3, 4, 5];
        function myFunc($numArray)
        {
            $slice = array_slice($numArray, 1, 3);
            var_dump($slice);
        }
        myFunc($numArray);
ivashkevich 05.08.2020 в 10:29

Где типы аргументов?

Скобка, открывающая тело функции, пишется на новой строке.

Функциям стоит давать более осмысленные имена.

annferny 16.08.2020 в 14:47

Первая задача:

$array = [1, 3, 2];

sort($array);

$string = implode(':', $array);
echo $string;

Вторая задача:

$array = [1, 2, 3, 4, 5];

$slicedArray = array_slice($array, 1, 3);

var_dump($slicedArray);

Третья задача:

$line = trim(fgets(STDIN));
$array = explode(' ', $line);
$new = array_unique($array);
$line = implode(' ', $new);
echo $line;
ivashkevich 17.08.2020 в 06:32

Отлично!

[email protected] 21.08.2020 в 14:58
1)
<?php
$arr = [
    1 . '<br>',
    3 . '<br>',
    2 . '<br>'
    ];
           sort ($arr);
           $str = implode($arr);

echo $str;


2)
<?php

$arr = [
    1 . '<br>',
    2 . '<br>',
    3 . '<br>',
    4 . '<br>',
    5 . '<br>'
    ];

        $arr_new = array_slice($arr, 1, 3);

var_dump ($arr_new);
ivashkevich 23.08.2020 в 09:12

А можете оформить переносы? Чтобы код был кодом? Нажмите на карандашик и поправьте, пожалуйста. А потом ответьте мне на этот комментарий. Проверю домашку после этого.

Sergey503 17.09.2020 в 17:22

1)

$arr = [1, 3, 2,];
sort($arr);
$result = implode(':', $arr);
var_dump($result);

2)

$array = [1, 2, 3, 4, 5];
$result = array_slice( $array, 1, -1);
var_dump($array, $result);
ivashkevich 19.09.2020 в 07:21

Отлично

[email protected] 05.10.2020 в 21:14

Доброго вечера.

А можешь научно-популярно объяснить, как работает isset из решения в третьем задании?
Почитал документацию, и посмотрел, как работает через дебаггер, но до конца логику не пониманию, он проверяет на истинность того, есть ли помещаемое число уже в массиве, или нет? Или из-за отрицания спрашивает, нет ли его там, если нет, значит помещает? Ааааа. Кипит котёл.

$line = '0 1 2 3 2 3 4';
$nums = explode(' ', $line);

$numsPrinted = [];
foreach ($nums as $num) {
    if (!isset($numsPrinted[$num])) {
        $numsPrinted[$num] = true;
        echo $num . ' ';
    }
}

Я про это решение.

ivashkevich 06.10.2020 в 07:57

Он проверяет что значение НЕ NULL. Ну и в случае с массивом проверяет что есть значение по таком ключу и что это значение !== null

[email protected] 08.10.2020 в 02:14

Спасибо, стало немного понятнее)

Ed8L 12.10.2020 в 11:52

Привет, мой код по задаче https://php.zone/problems/5 прошел все тесты. Посмотрел ваше решение и теперь мне кажется что я написал длинный и трудночитаемый код.

$arr = explode(' ', $line);

sort($arr);

if (count($arr) >= 2) {
    for ($i = 0; $i < count($arr); $i++) {
        if ((count($arr) - 1) != $i) {
            if ($arr[$i] == $arr[$i + 1]) {
                unset($arr[$i]);
                $result = $arr;
            }
        }
    }
}

foreach ($arr as $item) {
    echo $item . ' ';
}

Что скажете?

ivashkevich 15.10.2020 в 12:19

Ну, много лишнего конечно. Ведь все что нужно - вывести число только один раз.

[email protected] 30.10.2020 в 17:59
<?php

$fruits = array(1, 3, 2);
      sort($fruits);
      foreach ($fruits as $val) {
              echo $val . ":";
      }
ivashkevich 31.10.2020 в 06:42

Почему используется старый синтаксис для массивов?

Проблема с форматированием. Делайте отступы и переносы как в уроках. Для этого в шторме можно нажать Ctrl+Alt+L

Larisa 01.11.2020 в 14:02
<?php

$array = [1, 3, 2];
sort($array);
$arraySort = implode(":", $array);

echo 'Результат: новый массив ' . $arraySort;

Результат: новый массив 1:2:3
ivashkevich 02.11.2020 в 20:30

Отлично

Larisa 01.11.2020 в 15:18
<?php

$array = [1, 2, 3, 4, 5];
$arrayShort = array_splice($array, 1, -1);
foreach ($arrayShort as $value) {
    echo $value . ' ';
}

Результат:
2 3 4
ivashkevich 02.11.2020 в 20:30

Отлично

pixel 06.11.2020 в 18:54
<?php
//сортировка массива
    $array = [1, 3, 2];
    asort($array);
    $countArray = count($array);
    for ($i = 0; $i < $countArray; $i++) {
        if ($i === $countArray - 1) {
            echo $array[$i];
        } else {
            echo $array[$i] . ':';
        }
    }
ivashkevich 08.11.2020 в 15:00

Почему не sort? Прочитайте про implode

pixel 08.11.2020 в 16:27

Спасибо, в телеграмме обсудили тему sort и asort. Тут нужно было просто sort воспользоваться т.к. массив у меня не ассоциативный.
Спасибо за implode удобная функция, о ней не знал.

pixel 06.11.2020 в 19:03
<?php 
    //получить из массива элементы с 1 по 3
    $array = [1, 2, 3, 4, 5];
    $newArray = [];
    foreach (range($array[1], $array[3], 1) as $value){
        $newArray[] = $value;
    }
    print_r($newArray);
ivashkevich 08.11.2020 в 15:02

Не то. Почитайте про slice/splice

pixel 08.11.2020 в 16:46

Спасибо!

<?php
$array = [1, 2, 3, 4, 5];
    array_splice($array, 3, count($array));
    array_splice($array, 0, 1);
    var_dump($array);
    $array = [1, 2, 3, 4, 5];
    var_dump(array_slice($array, 1, 2));
ivashkevich 08.11.2020 в 16:52

Что-то как-то много всего. Правильный ответ выглядит вот так:

$array = [1, 2, 3, 4, 5];
$slice = array_slice($array, 1, 3);
var_dump($slice);
pixel 08.11.2020 в 16:56

Попробовал 2-мя способами сделать 1 задачу)

pixel 06.11.2020 в 19:43
<?php

    //удаление повторяющихся элементов в массиве
    $line = '0 2 3 1 2';
    $array = explode(' ', $line);
    $array = array_unique($array);
    sort($array);
    var_dump($array);
ivashkevich 08.11.2020 в 15:02

тут ок

zarin 16.01.2021 в 11:35
/*1. Есть массив чисел – [1, 3, 2]. Отсортируйте их от меньшего к большему и преобразуйте в строку, в которой значения элементов массива разделяются двоеточиями. В результате должна получиться строка “1:2:3”.*/
$array1 = [3, 5, 1, 2];

sort($array1);

echo implode(':', $array1);
echo '<hr>';

/*2. Есть массив чисел – [1, 2, 3, 4, 5]. Получите с помощью одной функции массив, в котором будут элементы исходного с 1-го элемента по 3-й. В результате должен получиться массив с числами [2, 3, 4].*/
$array2 = [1, 2, 3, 4, 5];
$section = array_slice($array2, 1, 3); //Выбирает срез массива
var_dump($section);
echo '<hr>';

/*3.На вход дана строка с числами, разделенными пробелами.Удалите все повторы чисел.
Выведите их в любом порядке, разделив пробелами.*/
$line = '0 2 3 1 2';

$array = explode(' ', $line);
$array = array_unique($array);
$line = implode(' ', $array);

echo $line;
echo '<hr>';

Добрый день. по 3её задаче уже потом посмотрел решение с isset и понял как работает.

ivashkevich 17.01.2021 в 12:24

Отлично

Alexandr92 24.01.2021 в 18:58

Артём, не могли бы вы пояснить своё решение к задаче?

Уникальные числа
На вход дана строка с числами, разделенными пробелами.
Удалите все повторы чисел. Выведите их в любом порядке, разделив пробелами.

<?php
$line = trim(fgets(STDIN));
$nums = explode(' ', $line);

$numsPrinted = [];
foreach ($nums as $num) {
    if (!isset($numsPrinted[$num])) {
        $numsPrinted[$num] = true;
        echo $num . ' ';
    }
}

Решил по-другому, ваше решение не понимаю.

ivashkevich 25.01.2021 в 19:34

Берем массив чисел, если число ранее не выводилось, выводим его и сохраняем в массиве напечатанных чисел в качестве ключа.

Alexandr92 25.01.2021 в 20:18

Точно... в качестве ключа, спасибо!

[email protected] 31.01.2021 в 10:41
//1
$array = [1, 3, 2];
sort($array);
$colon_separated = implode(':', $array);
echo $colon_separated;

//2
$array = [1, 2, 3, 4, 5];
$newArray = array_slice($array, 1, 3);
var_dump($newArray);

//3
$line = '0 2 3 1 2';
$array = explode(' ', $line);
$newArray = array_unique($array);
$line = implode(' ',$newArray);
echo $line;
ivashkevich 01.02.2021 в 06:32
$colon_separated

имена переменных в camelCase!

В остальном ок

Trop 01.02.2021 в 21:38

Первая

$numbs = [1, 3, 2];
natsort($numbs);
var_dump($numbs);
echo implode(':', $numbs);

Вторая

$numbs = [1, 2, 3, 4, 5];
$newNumbs = array_slice($numbs,1,-1);
var_dump($newNumbs); 
ivashkevich 04.02.2021 в 07:34
natsort($numbs);

Почему не sort?

Egor.Ka 10.02.2021 в 18:10
<?php
//Есть массив чисел – [1, 3, 2]. Отсортируйте их от меньшего к большему и преобразуйте в строку
//, в которой значения элементов массива разделяются двоеточиями.
// В результате должна получиться строка “1:2:3”.

$arr = [1, 3, 2];
sort($arr);
$str=implode ( ':' , $arr );
echo $str;
echo '</br>';

//Есть массив чисел – [1, 2, 3, 4, 5]. Получите с помощью одной функции массив, в котором будут элементы
//исходного с 1-го элемента по 3-й. В результате должен получиться массив с числами [2, 3, 4].

$arr2=[1, 2, 3, 4, 5];
echo var_dump( range('2', '4'));

Во втором задании не понял, почему функция range() считает элементы массива с 1, а не с 0?

ivashkevich 14.02.2021 в 15:12

Второе неверно. Читайте документацию функции, она вообще другое дело.

Egor.Ka 14.02.2021 в 16:41

Вот, исправил. Но на PHP.net написано, что range — Создаёт массив, содержащий диапазон элементов, в ДЗ написано, что надо получить с помощью одной функции массив, в котором будут элементы исходного с 1-го элемента по 3-й, я же это и сделал получается, только не вывел значение функции в переменную, а результат по факту тот же) Или я чего-то не понимаю)

<?php
$arr1=[1, 2, 3, 4, 5];
$arr2= array_slice($arr1, 1, 3);

echo var_dump($arr2);
ivashkevich 20.02.2021 в 04:39

Нет. Вы сделали фиксированный диапазон чисел. Если числа в исходном массиве поменяются, ваш код окажется не у дел) Алгоритм должен быть универсальным.

Vladimir96 11.02.2021 в 22:41
$arr = [
    1,
    3,
    2
];
sort($arr, SORT_NUMERIC);
var_dump(implode(':', $arr));

//срез массива
$arrTwo = [
    1,
    2,
    3,
    4,
    5
];
var_dump(array_slice($arrTwo, 1, 3));
ivashkevich 14.02.2021 в 15:17

SORT_NUMERIC - для чего?

Vladimir96 14.02.2021 в 15:35

указал, что сравниваю именно числовые элементы

serega19860511 20.04.2021 в 21:28
$arr = [2,3,1];
sort($arr);
$str = implode(':', $arr);
echo $str;
$arr = [1,2,3,4,5,];
$array = array_slice($arr, 1, 3);
var_dump($array);
ivashkevich 27.04.2021 в 20:35

Отлично

Логические задачи с собеседований