Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ключ элемента массива

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Как получить текущий ключ элемента массива в цикле?
EVGENphp
Отправлено: 30 Мая, 2015 - 08:05:52
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Дек. 2014  


Помог: 0 раз(а)




Коллеги, доброго времени суток!

Возникла сложность в получении ключей элементов массива, выводимых в цикле - начинает выводить со второго элемента: первому присваивает ключ второго, второму - ключ третьего и т.д. (последний выводит пустым значением).

Пробовал использовать функции next(), reset(), prev(), но ничего путного не получилось.

Суть задачи:

Есть массив товаров и параметрами. Сформирован он корректно и имеет следующий вид:

PHP:
скопировать код в буфер обмена
  1. [7] => Array
  2.         (
  3.             [prod_id] => 7
  4.             [cat] => Чулки
  5.             [brand] => Innamore
  6.             [name] => Zazu Line
  7.             [color_size] => Array
  8.                 (
  9.                     [1,3] => nero 3 (M)
  10.                     [2,3] => grigio-scuro 3 (M)
  11.                     [3,5] => moka 5 (XL)


Нужно получить ключи элемента-массива [color_size]. Как вы понимаете первая цифра в ключах есть id цвета, вторая - id размера. Оба id-шника "уйдут" в качестве параметров в функцию удаления товара с такими характеристиками.

Соответственно сам цикл вывода выглядит так:

PHP:
скопировать код в буфер обмена
  1. <?PHP foreach($prod['color_size'] as $item): ?>
  2. <a href="<?=PATH?>?view=delsize&prod_id=<?=$prod['prod_id']?>&values=<?=key($prod['color_size']); next($prod['color_size']);?>" class="color-size-link" title="Удалить"><?=$item?></a>
  3. <?PHP endforeach; ?>


$prod - это элемент массива товаров которые также выводятся в цикле (в данном примере 7).

Вообщем все выодится корректно, только нумерация key($prod['color_size']) идет со второго ключа.

В чем может быть дело и как исправить проблему?
 
 Top
Bio man
Отправлено: 30 Мая, 2015 - 13:32:53
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?PHP foreach($prod['color_size'] as $key => $item): ?>
  2.     <a href="<?= PATH ?>?view=delsize&prod_id=<?= $prod['prod_id'] ?>&values=<?= $key ?>" class="color-size-link" title="Удалить"><?=$item?></a>
  3. <?PHP endforeach; ?>

?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB