Массив в php

12
I6
На сайте с 30.08.2007
Offline
23
1476

Есть одномерный массив

$arra[1] = "Москва";

$arra[4] = "Петербург";

Как вы заметили номера в массиве идут не по порядку.

Задача 1 - получить число строк массива (в данном случае их 2) $count

Задача 2 - получить значения переменных $a = 1 и $b = Москва или $a = 4 и $b = Петербург

Затем все это вывести циклом и в конечном итоге получить

1 - Москва

4 - Петербург

Помогите решить эту задачу :)

T
На сайте с 19.12.2006
Offline
101
#1

$arra[1] = "Москва";
$arra[4] = "Петербург";

$count=count($arra); //количество элементов массива

echo '<pre>';

echo 'Кол-во элементов: '.$count ;
echo '<br/>';

foreach ($arra as $k=>$v){ //$k = ключ, $v = значение
echo $k.' - '.$v;
echo '<br/>';
}
I6
На сайте с 30.08.2007
Offline
23
#2

Большое спасибо за код! Но теперь возникла еще одна проблемка

В конце последней строки нужно поставить точку.

Кол-во элементов: 2

1 - Москва

4 - Петербург.

К примеру при цикле for я это делал так

for ($b=1; $b<=$count2; $b++):

if($b <> $count):

не ставим точку

else:

ставим точку

endif;

endfor;

Как это сделать для foreach ???

psylosss
На сайте с 23.12.2005
Offline
126
#3
Помогите решить эту задачу
Как это сделать для foreach ???

опять программы под диктовку пишем?

Веб-разработка. Сложные проекты. Проектирование. Проект-менеджмент. Стартапы.
ShopOS
На сайте с 06.03.2008
Offline
59
#4

if ($count >= 1) echo '.';

I6
На сайте с 30.08.2007
Offline
23
#5
ShopOS:
if ($count >= 1) echo '.';

😕

В нашем случае $count всегда постоянная и равна 2, которая никак не используется в цикле... Это значение может меняться поэтому $count >= 1 тут никак не используешь

foreach ($arra as $k=>$v){ //$k = ключ, $v = значение

echo $k.' - '.$v;

echo '<br/>';

}

ShopOS
На сайте с 06.03.2008
Offline
59
#6

foreach ($arra as $k=>$v){ //$k = ключ, $v = значение

echo '<br/>';

echo $k.' - '.$v;

}

echo '.<br/>';

I6
На сайте с 30.08.2007
Offline
23
#7
ShopOS:
foreach ($arra as $k=>$v){ //$k = ключ, $v = значение
echo '<br/>';
echo $k.' - '.$v;
}
echo '.<br/>';

😕 А если все будет наоборот - точку ставить не в конце а во всех предыдущих

Например

1 - Москва.

4 - Петербург

В этом случае такой метод не подойдет... Задача не в том как поставить точку, а втом как определить на каком цикле foreach мы сечас находимся.

для цикла for ($b=1; $b<=$count; $b++): к примеру это был параметр $b

Knave
На сайте с 01.02.2007
Offline
48
#8
INFO56:
Задача не в том как поставить точку, а втом как определить на каком цикле foreach мы сечас находимся.

Так заведите под это дело переменную


$i = 0;
foreach ($arra as $k=>$v){ //$k = ключ, $v = значение
echo '<br/>';
echo $k.' - '.$v;
$i++;
}
echo '.<br/>';

Хотя уверен, что все нужные вам задачи можно решить и без нее.

That's what's the deal we're dealin' in
ShopOS
На сайте с 06.03.2008
Offline
59
#9

Что мешает создать свою переменную?

$b=0;

foreach ($arra as $k=>$v)

{

$b++; // номер элемента

echo $k.' - '.$v;

If ($b == $count) echo '.'; //в послднем всегда точка

//If ($b < $count) echo '.'; //во всех, до последнего

echo '<br/>';

}

I6
На сайте с 30.08.2007
Offline
23
#10
Knave:
Так заведите под это дело переменную


$i = 0;
foreach ($arra as $k=>$v){ //$k = ключ, $v = значение
echo '<br/>';
echo $k.' - '.$v;
$i++;
}
echo '.<br/>';


Хотя уверен, что все нужные вам задачи можно решить и без нее.

Спасибо :) по свою переменную я что-то и не подумал. Видимо недосыпание берет свое :D

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий