Jump to content
  • 0

Не работает foreach


people2010
 Share

Question

Не получается вывести с помощью конструкции forech двумерный массив.

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

<?php
$arr = array(
'misha' =>array('Петя','Вася','Коля','Динис','Федя','Богдан')
);
$arr['misha'][] = 'Nikita Litvinkov';

echo $arr['misha'][6];

foreach($arr as $v=>$kloyn){ //Вот это не срабатывает
echo $v->kloyn;
}
?>

Как вывести с помощью этой конструкции?

Edited by people2010
Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Прошу прощения,а что делать если двумерный ассоциативный массив такой,

как этой конструкцией вывести весь двумерный массив, чтоб не писать постоянно, название каждого индекса,

и каждый индекс по отдельности,в этом коде:

<h1>
<pre>
<?php

$arr = array(
'misha' =>array('Петя','Вася','Коля','Динис','Федя','Богдан'),
'pischa' =>array('Салат','Сардельки','Огурчики','Сало','Мясо','буженина'),
'azart' =>array('Игровые автоматы','Развод'),
'santa' =>array('Клаус','Дед Мороз')
);
$arr['misha'][] = 'Nikita Litvinkov';

echo $arr['misha'][6].'<br/>';

foreach($arr['misha'] as $v){
echo $v.' ';
}

?>

</pre>
</h1>

Link to comment
Share on other sites

  • 0

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

<h1>
<pre>
<?php

$arr = array(
'misha' =>array('Петя','Вася','Коля','Динис','Федя','Богдан'),
'pischa' =>array('Салат','Сардельки','Огурчики','Сало','Мясо','буженина'),
'azart' =>array('Игровые автоматы','Развод'),
'santa' =>array('Клаус','Дед Мороз')
);
$arr['misha'][] = 'Nikita Litvinkov';

echo $arr['misha'][6].'<br/>';

foreach($arr as $v=>$kloyn){
foreach($kloyn as $v2=>$kloyn2){
echo $v2.' '.$kloyn2;
}
echo '<br/>';
}

?>

</pre>
</h1>

Вывод:

Nikita Litvinkov
0 Петя1 Вася2 Коля3 Динис4 Федя5 Богдан6 Nikita Litvinkov
0 Салат1 Сардельки2 Огурчики3 Сало4 Мясо5 буженина
0 Игровые автоматы1 Развод
0 Клаус1 Дед Мороз

Link to comment
Share on other sites

  • 0
<?php

$arr = array(
'misha' =>array('Петя','Вася','Коля','Динис','Федя','Богдан'),
'pischa' =>array('Салат','Сардельки','Огурчики','Сало','Мясо','буженина'),
'azart' =>array('Игровые автоматы','Развод'),
'santa' =>array('Клаус','Дед Мороз')
);

$arr['misha'][] = 'Nikita Litvinkov';
echo end($arr['misha']).'<br/>'; // !!!

foreach($arr as $kloyn){
foreach($kloyn as $kloyn2){
echo $kloyn2.' ';
}
echo '<br/>';
}

Echo "<p>Или</p>";

foreach($arr as $kloyn){
echo implode(', ', $kloyn);
echo '<br/>';
}
?>

Link to comment
Share on other sites

  • 0

Прошу прощения, скажите как написать вот этот код, только вместо foreach сделать циклом?

Как написать циклами без использования этой конструкции,чтоб вывести весь многомерный массив?

Пробую так, получается бурда немного.

<h1>
<pre>
<?php

$arr = array(
'misha' =>array('Петя','Вася','Коля','Динис','Федя','Богдан'),
'pischa' =>array('Салат','Сардельки','Огурчики','Сало','Мясо','буженина'),
'azart' =>array('Игровые автоматы','Развод'),
'santa' =>array('Клаус','Дед Мороз')
);
$arr['misha'][] = 'Nikita Litvinkov';

echo $arr['misha'][6].'<br/>';

for($i=0; $i<count($arr); $i++){
for($j=0; $j<count($arr,COUNT_RECURSIVE); $j++){
echo $arr['misha'][$j].' ';
echo $arr['pischa'][$j].' ';
echo $arr['azart'][$j].' ';
echo $arr['santa'][$j].' ';
}
echo "\n";
}

?>

</pre>
</h1>

Edited by people2010
Link to comment
Share on other sites

  • 0

Вот так, будет выводить, как сделать такое же только чисто циклами фор, не знаю как.

<h1>
<pre>
<?php

$arr = array(
'misha' =>array('Петя','Вася','Коля','Динис','Федя','Богдан'),
'pischa' =>array('Салат','Сардельки','Огурчики','Сало','Мясо','буженина'),
'azart' =>array('Игровые автоматы','Развод'),
'santa' =>array('Клаус','Дед Мороз')
);
$arr['misha'][] = 'Nikita Litvinkov';

echo $arr['misha'][6].'<br/>';

foreach($arr as $k=>$v)
{
echo '<b>'. $k .'</b><br>';
foreach($v as $i=>$j)
{
echo $i .'=>'. $j .'<br>';
}
}

?>

</pre>
</h1>

Link to comment
Share on other sites

  • 0

for($i=0; $i<count($arr); $i++){

Лишние затраты на пересчитывание count при каждой итерации

$size=sizeof($arr);
for ($a=0; $a < $size; $a++)
{
$insize=sizeof($arr[$a]);
for($b=0; $b < $insize; $b++)
echo $b.' '.$arr[$a][$b].' ';
}

А какую конструкцию не надо использовать и какова мерность массива? Если мерность неизвестна, лучше использовать рекурсию.

Edited by Int
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy