Обработка массива. Получение всех значений полей.
Приветствую.
Помогите пожалуйста вот с какой незадачей. Есть массив [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, время: 00:22. |