Обновить или добавить данные в многомерный массив

Здравствуйте, я создаю лучший вид продукта за последнее время на основе файлов cookie php. в первую очередь всякий раз, когда пользователь просматривает некоторые данные, поэтому я сохраняю cookie, как следует

//by Creating Manually array
$cookieArr = array("productid"=>$row_category[0],"views"=>1);
setcookie("myshopping", $cookieArr, time() + (8640000 * 30), "/");

Какой результат как следует

(
    [productid] => 27
    [views] => 1
)

Теперь, когда пользователь посещает другую страницу в качестве примера, если 35 number page, поэтому вывод должен быть похож на

(
    [productid] => 27,35
    [views] => 1,1
)

это не проблема, как это добавить. проблема в том, что мне нужно увеличить просмотр, если пользователь снова посетит ту же страницу. например, если пользователь снова посещает 27-ю страницу, поэтому массив должен понравиться. означает, что данные не добавляются, просто обновляются представления.

(
    [productid] => 27,35
    [views] => 2,1
)

я пробовал

foreach ($cookieArr as $key => $value) {
  //Get all products
  $allProdcutid = $cookieArr["productid"];
}
//than checking
if (in_array($myproductid, $cookieArr['productid'])){
    echo "Avaibality";
}else{
    echo "exit";
}

Это для демонстрации.

почему значения, разделенные запятыми? почему бы не создать такой массив: -( [productid] => array(27,35), [views] => array(27=>2,35=>1) ). легко обновлять или добавлять каждый раз

Serving Quarantine period 17.03.2018 13:15
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
1
111
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Взгляните на многомерные массивы ... https://www.w3schools.com/php/php_arrays_multi.asp

Вы можете сформировать свой массив файлов cookie, как показано ниже

(
    [products] => [13=>array("views"=>1),27=>array("Views"=>4)]              
)

тогда вы можете использовать array_key_exists в массиве продуктов, чтобы найти идентификатор продукта или добавить его.

Ниже приведен код php:

if (array_key_exists($myproductid,$cookie['products'])  
{
   $cookie['products'][$myproductid]['views']++;
}
else
{
   $cookie['products'][$myproductid]=array('views'=>1);
}

Таким образом, вы можете позже добавить в свой массив продуктов другие свойства, кроме представлений ...

Это мой вопрос.!

user9341437 17.03.2018 13:32

Вам нужно сохранить свой массив с product_id в качестве ключа и представлениями в качестве значения. Например,

(
27 => 1,
37 => 2
)

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

Например, если пользователь посещает продукт с идентификатором 27.

Это должен быть комментарий

user9341437 17.03.2018 13:33
Ответ принят как подходящий

1. вы можете создать массив, как показано ниже: -

Array( 
  27=>1,
  35=>1
)

С этим будет еще проще справиться. ключи - это производимые, а значения - сколько раз они посетили.

2. Или измените свой код, как показано ниже: -

<?php

$myproductid = 27;
$cookieArr= array(
    'productid' => '27,35',
    'views' => '1,1'
);

if (in_array($myproductid, explode(',',$cookieArr['productid']))){
    $searched_key = array_search($myproductid,explode(',',$cookieArr['productid']));
    $views_array = explode(',',$cookieArr['views']);
    $views_array[$searched_key] +=1;
    $cookieArr['views'] = implode(',',$views_array);
}else{
    echo "exit";
}

print_r($cookieArr);

Выход: -https://eval.in/973605

Это действительно здорово .

user9341437 17.03.2018 13:40

Другие вопросы по теме