Я написал это:
$date = $_SESSION['basket']['date'];
$number = $_SESSION['basket']['number'];
$type = $_SESSION['basket']['type'];
if ($number > 9) {
$fill = "********";
} else {
$fill = "*********";
}
echo "<pre>Date | Number | Type |</pre>";
foreach ($date as $key => $value) {
echo "<pre>" . $date[$key] . " | " . $number[$key] . $fill . "| " . $type[$key] . "</pre>";
}
$ number — это всегда значение от 1 до 14 (количество дней), то есть один или два символа. Цель состоит в том, чтобы добиться хорошего выравнивания в моем выводе. Вот результат моего вывода:
Date | Number | Type
28.02.2017 | 2********| Top
26.02.2017 | 11********| Basic
Это не работает, значение $ fill всегда одинаково, иначе опция my if, кажется, не распознается. Есть идеи, как это решить? Спасибо.
Правильный путь будет использовать str_pad
функция
$targetLenght = 12;
$string ='Text';
$string = str_pad($string , $targetLenght, '*');
echo $string;
результаты в:
Текст********
Мне кажется, что ваша конечная скобка вашего оператора else находится в неправильной позиции. Разве ваш блок if if else не должен выглядеть примерно так ?:
if ($number > 9) {
$fill = "********";
} else {
$fill = "*********";
}
if - else
Заявление было построено неправильно.
Используйте следующее:
if ($number > 9) {
$fill = "********";
} else {
$fill = "*********";
}
Или даже короче, используя str_pad функция:
...
$number = str_pad($number, 9, '*', STR_PAD_RIGHT);
...
Ты можешь использовать str_pad функция:
$ number = str_pad ($ number, 9, ‘*’, STR_PAD_RIGHT);
Как это работает в вашей ситуации:
function padNumber($number)
{
return str_pad($number, 9, '*', STR_PAD_RIGHT);
}
foreach ($date as $key => $value)
{
echo sprintf("<pre>%s|%s|%s</pre>", $date[$key], padNumber($number[$key]), $type[$key]);
}
if ($number > 9)
Мне кажется, что $ число это массив не ?? поэтому вам нужно написать что-то вроде этого:
if( $number[$index] > 9 )
Это исправленный код, проверьте его.
$date = $_SESSION['basket']['date'];
$number = $_SESSION['basket']['number'];
$type = $_SESSION['basket']['type'];
echo "<pre>Date | Number | Type |</pre>";
foreach ($date as $key => $value){
if ($number[$key] > 9) {
$fill = "********";
}else $fill = "*********"; {
}
echo "<pre>$date[$key] . " | " . $number[$key] . $fill . "| " .$type[$key]."</pre>";
}