Решаю задачки по составлению функций для новичков, которые проверяются по ожидаемым вводным данным с ожидаемыми результатами. В ожидаемом результате функция должна вернуть массив целых чисел в виде [0, 32, 18]
, а у меня получается сделать только [0,32,18]
. Вот полная функция:
function race($v1, $v2, $g)
{
if ($v1 >= $v2)
{
return null;
}
for ($i = 0; $i >= 0; $i++)
{
$tort1 = $v1 / 3600 * $i + $g;
$tort2 = $v2 / 3600 * $i;
if ($tort1 <= $tort2)
{
break;
}
}
$time = $i - 1;
$hours = floor($time / 3600);
if ($hours < 1)
{
$minutes = floor($time / 60);
}
else
{
$minutes = floor(($time - $hours * 3600) / 60);
}
$seconds = $time - $hours * 3600 - $minutes * 60;
$result = array($hours, $minutes, $seconds);
$b = [$hours, $minutes, $seconds];
return $b;
}
Подскажите, пожалуйста, как вернуть его с пробелами после запятой с учётом того, что результат - массив данных типа integer
?
Оказывается, проблема была в типе данных: я не привёл все результаты к integer
, так что суть проблемы была истолкована неверно, приношу свои извинения.
Пробелы как бэ, чисто эстетический вид чтобы было удобно читать.
$b = [$hours, $minutes, $seconds];
return $b;
определяешь массив и возвращаешь ее. Все правильно. это тоже самое что
$array = array($hours, $minutes, $seconds);
массив это структура данных. пробелы, которые вы хотите где-то увидеть, к самой структуре не относятся. это форма вывода/представления. Поэтому в целом массив сам по себе не содержит ни запятых ни пробелов, ни даже скобок этих (т.к. это всего лишь синтаксическая форма записи). Но если вы хотите напечатать данный массив, то в виде строки вы вольны вывести его как вам угодно, но это уже будет строка, а не массив.
function array2str($data){
return "[".implode(', ', $data)."]";
}
print array2str([0,38,12]);
Лучше всего в этом случае вместо assert_equals
использовать assertTrue
, а массивы сравнивать пользовательской функцией.
Код не тестировался, проверяйте сами:
/**
* Determine if two associative arrays are similar
*
* Both arrays must have the same indexes with identical values
* without respect to key ordering
*
* @param array $a
* @param array $b
* @return bool
*/
function arrays_are_similar($a, $b) {
// if the indexes don't match, return immediately
if (count(array_diff_assoc($a, $b))) {
return false;
}
// we know that the indexes, but maybe not values, match.
// compare the values between the two arrays
foreach($a as $k => $v) {
if ($v !== $b[$k]) {
return false;
}
}
// we have identical indexes, and no unequal values
return true;
}
В тесте:
$this->assertTrue(arrays_are_similar($foo, $bar));
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Вот пример текста:
Создал новый раздел в каталоге(Фаерволы), подскажите, кто знает, как вытащить товары с другого раздела(Серверы) в новый по ID? Заранее спасибо
Нужно сформировать sql запросУсловия такие: сортировка по категории и по цвету, но т