<?php
$trans = array(
0=> array("Мама","Папа","Дядя",),
1 => -3,
2 => 105,
3=>500,
4=>'Andrey',
8=> array("Вася","Петя","Коля")
);
foreach($trans as $x)
foreach($x as $y)
echo $x.' '.$y.' ';
?>
Спустя 17 минут, 50 секунд (29.04.2012 - 20:59) Invis1ble написал(а):
foreach ($trans as $data)
{
if (is_array($data))
foreach ($data as $item)
echo $item . '<br />';
else
echo $data . '<br />';
}
а вообще
var_dump($trans);
или
echo '<pre>' . print_r($trans, true) . '</pre>';
var_dump лучше
Спустя 4 минуты, 32 секунды (29.04.2012 - 21:04) walerus написал(а):
Забыл проверку сделать
<?php
$trans = array(
0=> array("Мама","Папа","Дядя",),
1 => -3,
2 => 105,
3=>500,
4=>'Andrey',
8=> array("Вася","Петя","Коля")
);
foreach($trans as $x)
{
if ( is_array($x) )
{
foreach($x as $y)
echo $x . ' ' . $y . " <br>\n"; // что бы с новой строки
}
else
echo $x . " <br>\n"; // что бы с новой строки
}
?>
Спустя 31 секунда (29.04.2012 - 21:04) walerus написал(а):
Invis1ble Опередил )
Спустя 9 минут, 35 секунд (29.04.2012 - 21:14) kilogram написал(а):
А циклом фор не пашет чего-то.
for ($i = 0; $i < count($trans); $i++)
{
if (is_array($trans[$i]))
for ($j = 0; $j < count($trans[$i]); $j++)
echo $trans[$i][$j] . ' ';
else
echo $trans[$i] . ' ';
}
Спустя 37 минут, 56 секунд (29.04.2012 - 21:52) walerus написал(а):
kilogram какая ошибка выдается?
Спустя 5 минут, 54 секунды (29.04.2012 - 21:58) kilogram написал(а):
Вот такой вывод выходит:
Цитата |
Мама Папа Дядя -3 105 500 Andrey Вася Петя Коля Мама Папа Дядя -3 105 500 Andrey Notice: Undefined offset: 5 in C:\www\htdocs\test.ru\www\index.php on line 24 Notice: Undefined offset: 5 in C:\www\htdocs\test.ru\www\index.php on line 28 |
<?php
$trans = array(
0=> array("Мама","Папа","Дядя",),
1 => -3,
2 => 105,
3=>500,
4=>'Andrey',
8=> array("Вася","Петя","Коля")
);
foreach($trans as $x)
{
if (is_array($x))
foreach ($x as $y)
echo $y . ' ';
else
echo $x . ' ';
}
echo '<br />';
for ($i = 0; $i < count($trans); $i++)
{
if (is_array($trans[$i]))
for ($j = 0; $j < count($trans[$i]); $j++)
echo $trans[$i][$j] . ' ';
else
echo $trans[$i] . ' ';
}
?>
Спустя 44 минуты, 5 секунд (29.04.2012 - 22:42) Adamant написал(а):
Зачем вам сдалась эта for() ? Пусть за вас считает нумерацию и кол-во индексов сама PHP.
А ошибка вам выдается потому, как у вас просто нет в вашем массиве элемента с индексом [5]
А ошибка вам выдается потому, как у вас просто нет в вашем массиве элемента с индексом [5]
Спустя 5 минут, 37 секунд (29.04.2012 - 22:47) kilogram написал(а):
А через оператор contunue может как-то перелететь можно используя фор?
Спустя 50 минут, 24 секунды (29.04.2012 - 23:38) kilogram написал(а):
Ух-ты, вот так получилось.
<?php
$trans = array(
0=> array("Мама","Папа","Дядя",),
1 => -3,
2 => 105,
3=>500,
4=>'Andrey',
8=> array("Вася","Петя","Коля")
);
if(!empty($r))echo 'не существует';
echo '<br />';
for ($i = 0; $i < count($trans); $i++)
{
if(empty($trans[$i])) continue;
if (is_array($trans[$i]))
for ($j = 0; $j < count($trans[$i]); $j++)
echo $trans[$i][$j] . ' ';
else
echo $trans[$i] . ' ';
}
?>
Спустя 1 час, 8 минут, 8 секунд (30.04.2012 - 00:46) Adamant написал(а):
continue пропускает весь дальнейший код (до закрывающей фигурной скобки), но это не значит, что итерация не проходит, $i все равно увеличивается на 1, а так как у вас количество элементов в вашем массиве - count($trans) остается все тем же - 6, то до вашего последнего элемента массива просто не дойдет "очередь" в цикле for
Спустя 19 минут, 33 секунды (30.04.2012 - 01:05) kilogram написал(а):
Вот так правильнее, проверил секундомером с учетом если 10 млн номер индекса последний, код запускается чере 14,16 сек. в браузере.
<?php
$trans = array(
0 => array("Мама","Папа","Дядя",),
1 => -3,
2 => 105,
3 => 500,
4 => 'Andrey',
10000000 => array("Вася","Петя","Коля")
);
end($trans);
$max = key($trans);
for ($i = 0; $i <= $max; $i++)
{
if (!array_key_exists($i, $trans)) continue;
if (is_array($trans[$i]))
for ($j = 0; $j < count($trans[$i]); $j++)
echo $trans[$i][$j] . ' ';
else
echo $trans[$i] . ' ';
}
?>