|
|
|
| Пытаюсь сделать скрипт... Чегото совсем не доходит в чем ошибка?
<?php
$str = "Ничего не понемаю... ничего не работает... моск уже кипит....";
$arr = str_split($str,25); //разбивает переменную на масив со строками по 25 символов
$n=count($arr); //подсчитывает количество строк
do
{
if(!$i){$i = 0;}
$arr = $arr[$i];
$num = strlen($arr);
$ii=$i+1;
echo '<tr>
<td>'.$ii.'</td>
<td>'.$arr.'</td>
<td>'.$num.'</td>
<td> </td>
</tr>';
$i = $i + 1;
}
while($i <= $n);
?>
|
Переменная $str должна разбиваться на переменные содержащие не более 25 символов, затем идет подсчет этих переменных и выводятся они под нумерацией и справа показывается сколько они символов содержат
Но у меня почемуто выводится только первая переменная с 25 символами.... | |
|
|
|
|
|
|
|
для: Bustrui
(14.02.2010 в 19:16)
| | http://phpfaq.ru/debug | |
|
|
|
|
|
|
|
для: Тень&
(14.02.2010 в 19:45)
| | спасибо | |
|
|
|
|
|
|
|
для: Bustrui
(14.02.2010 в 19:16)
| | Вместо $arr поробуйте $brr
потому, как $arr = $arr[$i]; не понятно (не соображу что будет) | |
|
|
|
|
|
|
|
для: Yuriev
(14.02.2010 в 19:51)
| | Немного изменил скрипт (цикл фор)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Untitled Document</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="60">Строка</td>
<td width="300">Текст</td>
<td width="80">символов</td>
<td> </td>
</tr>
<?php
error_reporting(E_ALL);
$str = "Ничего не понемаю... ничего не работает... моск уже кипит....";
$arr = str_split($str,25); //разбивает переменную на масив со строками по 25 символов
$n=count($arr); //подсчитывает количество строк
echo $arr['0']."<br>";
echo $arr['1']."<br>";
echo $arr['2']."<br>";
for($i=0; $i < $n; $i++)
{
$arr = $arr[$i];
$num = strlen($arr);
$ii=$i+1;
echo '<tr>
<td>'.$ii.'</td>
<td>'.$arr.'</td>
<td>'.$num.'</td>
<td> </td>
</tr>';
}
?>
</table>
</body>
</html>
|
вот что получается:
Ничего не понемаю... ниче
го не работает... моск уж
е кипит....
Notice: Uninitialized string offset: 2 in Y:\home\rab.xx\www\qq.php on line 27
[Денвер: показать возможную причину ошибки]
Строка Текст символов
1 Ничего не понемаю... ниче 25
2 и 1
3 0
|
$arr = $arr[$i] - присваевается значение масива $arr[$i] | |
|
|
|
|
|
|
|
для: Bustrui
(14.02.2010 в 19:57)
| | Посмотри после $arr = $arr[$i]; какой длины станет массим | |
|
|
|
|
|
|
|
для: Yuriev
(14.02.2010 в 20:08)
| | непонял.... что вы имеете ввиду?
по умолчаную $i ровна 0
после каждого цикал она увеличивается на еденицу, это должно выглядеть так:
$arr = $arr[0]
$arr = $arr[1]
$arr = $arr[2]
$arr = $arr[3] | |
|
|
|
|
|
|
|
для: Bustrui
(14.02.2010 в 20:12)
| | Я имею в виду, что после $arr = $arr[$i] массив $arr[] превратится во что-то другое | |
|
|
|
|
|
|
|
для: Yuriev
(14.02.2010 в 20:19)
| | Ой спасибо, дошло )))
Вместо $arr = $arr[$i] (получается этим действием я уничтожал сам масив)
сделал $a = $arr[$i] | |
|
|
|
|
|
|
|
для: Bustrui
(14.02.2010 в 20:24)
| | Пример для сравнения
<table>
<tr><td>Number</td><td>Value</td><td>Length</td></tr>
<?php
$str = "Ничего не понемаю... ничего не работает... моск уже кипит....";
$arr = str_split($str,25);
for ($i = 0; $i < count($arr); $i++)
echo '
<tr>
<td>'.($i + 1).'</td>
<td>'.$arr[$i].'</td>
<td>'.strlen($arr[$i]).'</td>
</tr>';
?>
</table>
|
| |
|
|
|
|
|
|
|
для: Yuriev
(14.02.2010 в 20:30)
| | Вообще-то правильней будет
<?
$arr = count(str_split($str,25));
for ($i = 0; $i < $arr; $i++)
|
| |
|
|
|
|
|
|
|
для: oliss
(15.02.2010 в 14:03)
| | В чем Ваша правильность заключается ? | |
|
|
|
|
|
|
|
для: t3ma
(15.02.2010 в 14:15)
| | А вы как думаете? | |
|
|
|
|
|
|
|
для: oliss
(15.02.2010 в 14:23)
| | На вкус и цвет товарища нет, о правильности здесь речи не может быть, так как оба варианта "правильные"... | |
|
|
|
|
|
|
|
для: t3ma
(15.02.2010 в 19:26)
| | если использовать вариант
<?
$arr = str_split($str,25);
for ($i = 0; $i < count($arr); $i++)
|
то функция count() будет вызываться каждый раз сколько итерации цикла
при таком варианте функция count() будет вызвана только 1(один) раз
<?
$arr = count(str_split($str,25));
for ($i = 0; $i < $arr; $i++)
|
| |
|
|
|
|
|
|
|
для: oliss
(15.02.2010 в 23:52)
| | > при таком варианте функция count() будет вызвана только 1(один) раз
А что случится с массивом $arr после такого акта насилия:
<?php
$arr = count(str_split($str,25));
|
? | |
|
|
|
|
|
|
|
для: oliss
(15.02.2010 в 23:52)
| | Интересный вопрос: count() выполнится один раз или сколько итераций цикла?
Как это можно проверить? | |
|
|
|
|
|
|
|
для: Yuriev
(16.02.2010 в 10:32)
| | 1 (для приведенной строки). | |
|
|
|