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]   

> Без описания
zzzzzz
Отправлено: 18 Января, 2013 - 03:01:52
Post Id


Гость


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


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




PHP:
скопировать код в буфер обмена
  1. (
  2.     [0] => Array
  3.         (
  4.             [1] => 2
  5.         )
  6.  
  7.     [1] => Array
  8.         (
  9.             [1] => 2
  10.         )
  11.  
  12.     [2] => Array
  13.         (
  14.             [75] => 4
  15.         )
  16.  
  17.     [3] => Array
  18.         (
  19.             [103] => 1
  20.         )
  21.  
  22. )


как мне в переменную $test занести ключ-родитель ключа 103?
То бишь цифру 3
Заранее спасибо
 
 Top
createl
Отправлено: 18 Января, 2013 - 13:21:47
Post Id



Гость


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


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




zzzzzz пишет:
как мне в переменную $test занести ключ-родитель ключа 103?
То бишь цифру 3
Заранее спасибо

Циклом foreach перебираешь массив, где обычным переменным, с произвольным названием, присваиваешь ключ массива и его значение для отдельно взятой итерации. Для значения пишешь условие, по которому ты определяешь на соответствие элемента массива твоим требованиям. Если элемент массива сам является массивом, как в твоем случае, то наверное
придется сделать вложенный цикл foreach для перебора этого массива. Тут уже в зависимости от того, что именно тебе требуется узнать об этом элементе. Возвращаемся к условию - если оно истинно, то присваиваешь $test значение переменной, в которую у тебя помещается значение индекса массива
Как то так...
PHP:
скопировать код в буфер обмена
  1. foreach ($array as $key => $value)
  2. {
  3.         if (то_что_надо($value)) $test = $key;
  4.        
  5. }
  6.  
 
 Top
sKaa
Отправлено: 18 Января, 2013 - 13:26:22
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


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

[+]


если ключ заранее известен ничего перебирать не нужно.


а оно по-любому известно, иначе как создать условие внутри
createl пишет:
отдельно взятой итерации


))))
 
 Top
createl
Отправлено: 18 Января, 2013 - 14:46:45
Post Id



Гость


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


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




sKaa пишет:
если ключ заранее известен ничего перебирать не нужно.


а оно по-любому известно, иначе как создать условие внутри
createl пишет:
отдельно взятой итерации


))))

Человек просит в переменную именно название ключа
zzzzzz пишет:
То бишь цифру 3

А если он заранее известен, то еще проще Радость
 
 Top
sKaa
Отправлено: 18 Января, 2013 - 14:50:04
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


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

[+]


Я очень невнимательно читаю бывает, что нужно топикстартерам.

 
 Top
zzzzzz
Отправлено: 18 Января, 2013 - 17:44:13
Post Id


Гость


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


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




Массив который я привел, это супер глобальный $_SESSION['basket'] (т.е корзина магазина), где 103 - это id товара, а 1-это количесво товара попавшего в корзину.

Теперь у меня есть массив с id продукта и количеством. Ясень пень теперь я должен вывести цену, категорию, общую сумму и т.д. отталкиваясь от id имеющегося в массиве. Делаю я это вложенными foreach

PHP:
скопировать код в буфер обмена
  1. $basket = $_SESSION['basket'];
  2. foreach ($basket as $basket) {
  3.   foreach ($basket as $id=>$amount) {
  4.     $result = mysql_query("SELECT pid,sku,name,price FROM product WHERE id='$id'");
  5.     $assoc = mysql_fetch_assoc($result);
  6.          print "<tr>
  7.                  <td>$id</td>  
  8.                  <td>$assoc['name']</td>
  9.                  <td>$amount</td>
  10.                  <td>$assoc['price']</td>
  11.                  <td>$assoc['price'] * $amount</td>
  12.                  <td><form action="$_SERVER['PHP_SELF']" method="post">
  13.                           <input name="numArray" type="hidden" value="$id"/>
  14.                           <input name="removeFromBasket" type="submit" value="Удалить"/>
  15.                         </form>
  16.                </td>
  17.                 </tr>";
  18.         }
  19. }



И мы видим что корзина работает и все четко, НО как теперь удалить ненужный товар из корзины, так unset($_SESSION['basket'][тут ключ]) ??? но вот как получить ключ, засунуть его в скрытый input чтобы ПОСТом отправить в функцию где и удалится ненужный товар попавший в корзину

(Отредактировано автором: 18 Января, 2013 - 17:57:06)

 
 Top
zzzzzz
Отправлено: 19 Января, 2013 - 15:45:11
Post Id


Гость


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


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




sKaa ваш вариант array_search не работает, может потому-что массив многомерный да и искать мы дол;ны по value а тут по key. короче говоря в $test не попало число 3
 
 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