Обработка массива. Получение всех значений полей.
Приветствую.
Помогите пожалуйста вот с какой незадачей. Есть массив [book_id_0] => 10 [book_id_3] => 8 [book_id_1] => 7 [other_data] => 'чунга-чанга' Мои попытки $i=0; $key = "book_id_". $i; while(isset($array[$key])) { echo "<h1>$key --- $array[$key]</h1>"; $i++; $key = "book_id_". $i; } на цифре 2 происходит обрыв. Как мне получить все значения из описанного массива? П.С. Это корзина товара в инет магазине. От куда такое название ключей в массиве? book_id_1 - book_id название поля а _1 это порядковый номер товара в корзине То есть при добавлении товара я делаю count() моегО массива и ключ для записи id товара выглядит как : "book_id_".count($array) |
Есть мысль при добавлении нового товара в корзину перезаписывать весь массив + удалять ячейку равную ключу последней записи +1
Решение: <?php // отправка cookie setcookie("cookie[three]", "cookiethree"); setcookie("cookie[two]", "cookietwo"); setcookie("cookie[one]", "cookieone"); // после перезагрузки страницы, выведем cookie if (isset($_COOKIE['cookie'])) { foreach ($_COOKIE['cookie'] as $name => $value) { $name = htmlspecialchars($name); $value = htmlspecialchars($value); echo "$name : $value <br />\n"; } } ?> Результат выполнения данного примера: three : cookiethree two : cookietwo one : cookieone |
наверное данную тему можно удалять, но вот еще что пригодилось.
<?php // Создаем простой массив. $array = array(1, 2, 3, 4, 5); print_r($array); // Теперь удаляем каждый элемент, но сам массив оставляем нетронутым: foreach ($array as $i => $value) { unset($array[$i]); } print_r($array); // Добавляем элемент (обратите внимание, что новым ключом будет 5, вместо 0). $array[] = 6; print_r($array); // Переиндексация: $array = array_values($array); $array[] = 7; print_r($array); ?> Результат выполнения данного примера: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) Array ( ) Array ( [5] => 6 ) Array ( [0] => 6 [1] => 7 ) |
Вам поможет foreach.
|
Часовой пояс GMT +3, время: 10:54. |