Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Обработка массива. Получение всех значений полей. (https://javascript.ru/forum/server/40401-obrabotka-massiva-poluchenie-vsekh-znachenijj-polejj.html)

Duda.Ml1986@gmail.com 03.08.2013 22:23

Обработка массива. Получение всех значений полей.
 
Приветствую.

Помогите пожалуйста вот с какой незадачей.

Есть массив
[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)

Duda.Ml1986@gmail.com 03.08.2013 22:35

Есть мысль при добавлении нового товара в корзину перезаписывать весь массив + удалять ячейку равную ключу последней записи +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

Duda.Ml1986@gmail.com 04.08.2013 21:09

наверное данную тему можно удалять, но вот еще что пригодилось.
<?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
)

frutality 14.08.2013 17:41

Вам поможет foreach.


Часовой пояс GMT +3, время: 10:54.