Alias.Boy
چهارشنبه 20 آذر 1392, 00:10 صبح
سلام
من فروشگاهی دارم ایجاد میکنم که محصولات این فروشگاه در رنگها و انواع مختلف اراپه میشه
برای اینکه کاربر بتواند چند رنگ مختلف از یک محصول را خریداری کند مجبور هستم از کلیدی استنفاده کنم که در هر بار اضافه شدن یک محصول جدید به آرایه تغییر کند
اگر از ID محصول به عنوان کلید استفاده کنم اطلاعات روی خانههای آن کلید نوشته میشود ، چون همانطور که میدانید در آرایه نمیتوان کلید تکراری داشت
همه چیز به درستی انجام میشه و فقط مشکلی که من دارم با این کدی که نوشتم این هست که در هر بار ایجاد شدن ردیفی از آرایه بعد از بسته شدن و دوباره لود شدن صفحه مقدار قبلی دوباره در آرایه نوشته میشود
بخش اضافه کردن اطلاعات به سبد خرید
<?php
if(isset($_SESSION['basket'])){
$key = end((array_keys($_SESSION['basket'])));
$key++;
}else{
$key = 0;
echo " count = 0";
}
if(isset($_GET['id'] , $_GET['meter'] , $_GET['color'])){
$id = $_GET['id'];
$color = $_GET['color'];
$meter = $_GET['meter'];
$selected_product = array($id , $color , $meter);
list($_SESSION['basket'][$key][0] , $_SESSION['basket'][$key][1] , $_SESSION['basket'][$key][2] ) = $selected_product;
echo "<pre>";
var_dump($_SESSION['basket']);
echo "</pre>";
$count = count($_SESSION['basket']);
echo " count = ".$count;
}
?>
نمونه خروجی آرایه:
array(3) {
[0]=>
array(3) {
[2]=>
string(4) "5544"
[1]=>
string(6) "سبز"
[0]=>
string(2) "11"
}
[1]=>
array(3) {
[2]=>
string(4) "5544"
[1]=>
string(6) "سبز"
[0]=>
string(2) "11"
}
[2]=>
array(3) {
[2]=>
string(4) "4234"
[1]=>
string(8) "سفید"
[0]=>
string(1) "9"
}
}
همانطور که میبیند مقدارهای خانههای آرایه با کلید 0 و 1 یکسان میباشند و این مقدارها ناخواسته ایجاد میشوند
از تابع array_unique هم برای اینکار استفاده کردم ولی جواب نداد
پیشاپیش از کمکتون ممنونم
من فروشگاهی دارم ایجاد میکنم که محصولات این فروشگاه در رنگها و انواع مختلف اراپه میشه
برای اینکه کاربر بتواند چند رنگ مختلف از یک محصول را خریداری کند مجبور هستم از کلیدی استنفاده کنم که در هر بار اضافه شدن یک محصول جدید به آرایه تغییر کند
اگر از ID محصول به عنوان کلید استفاده کنم اطلاعات روی خانههای آن کلید نوشته میشود ، چون همانطور که میدانید در آرایه نمیتوان کلید تکراری داشت
همه چیز به درستی انجام میشه و فقط مشکلی که من دارم با این کدی که نوشتم این هست که در هر بار ایجاد شدن ردیفی از آرایه بعد از بسته شدن و دوباره لود شدن صفحه مقدار قبلی دوباره در آرایه نوشته میشود
بخش اضافه کردن اطلاعات به سبد خرید
<?php
if(isset($_SESSION['basket'])){
$key = end((array_keys($_SESSION['basket'])));
$key++;
}else{
$key = 0;
echo " count = 0";
}
if(isset($_GET['id'] , $_GET['meter'] , $_GET['color'])){
$id = $_GET['id'];
$color = $_GET['color'];
$meter = $_GET['meter'];
$selected_product = array($id , $color , $meter);
list($_SESSION['basket'][$key][0] , $_SESSION['basket'][$key][1] , $_SESSION['basket'][$key][2] ) = $selected_product;
echo "<pre>";
var_dump($_SESSION['basket']);
echo "</pre>";
$count = count($_SESSION['basket']);
echo " count = ".$count;
}
?>
نمونه خروجی آرایه:
array(3) {
[0]=>
array(3) {
[2]=>
string(4) "5544"
[1]=>
string(6) "سبز"
[0]=>
string(2) "11"
}
[1]=>
array(3) {
[2]=>
string(4) "5544"
[1]=>
string(6) "سبز"
[0]=>
string(2) "11"
}
[2]=>
array(3) {
[2]=>
string(4) "4234"
[1]=>
string(8) "سفید"
[0]=>
string(1) "9"
}
}
همانطور که میبیند مقدارهای خانههای آرایه با کلید 0 و 1 یکسان میباشند و این مقدارها ناخواسته ایجاد میشوند
از تابع array_unique هم برای اینکار استفاده کردم ولی جواب نداد
پیشاپیش از کمکتون ممنونم