Вопрос по ассоативным массивам.

demongloom

Новичок
Вопрос по ассоативным массивам.

Есть ассоативный массив (текстовый ключ - значение)
Я обегаю его элеметны через foreach($a as $k => $v).
Как я могу узнать что текущий элемент последний в массиве или нет?

Пример.
$a = array("a" => "123", "b" => "333", "c" => "fff", "a" => "444");
 

Bitterman

Новичок
Например, перевернуть массив и взять первый элемент. Затем сравнить ключи во время цикла.
В твоем примере, правда, не покатит, так как у тебя уникальный массив, в котором 2 элемента с одинаковыми ключами. )))

Или посчитать общее количество элементов и вставить счетчик в цикл. Полно вариантов, короче.
Зачем тебе это, кстати?
 

dimagolov

Новичок
mishco, ну не стоит использовать одновременно 2 ф-ии которые двигают указатель массива. особенно если одна из них - цикл foreach.

demongloom, это не твоя тема
 

Zetruger

ivan.chistyakov.name
func last_key($arr) {
end($arr);
return key($arr);
}

-~{}~ 18.09.07 17:28:

$ak = array_keys($a);
$av = array_values($a);

foreach ($av as $k => $v) {

echo 'key ' . $ak[$k];
echo 'value ' . $av[$k];

if ($k === count($av) - 1) последний элемент

}
 

bgm

 
Сколько разнообразных комментариев...

Если тебе нужно узнать, что выбранный элемент массива последний, то для решения используй:
- счётчик;
- информацию о размере массива;
- инкремент.

P.S. Сразу уж и код:
PHP:
$a = array("a" => "123", "b" => "333", "c" => "fff", "a" => "444");
$i = 0; $c = sizeof($a);

foreach ($a as $k=>$v) {
    $i++;
    if ($i==$c) echo "Последний элемент";
}
 

Alexandre

PHPПенсионер
count - более правильнее, хотя:
count — Count elements in an array, or properties in an object
sizeof - This function is an alias of: count().
 
Сверху