मैं php में एक शॉपिंग कार्ट लिखने की कोशिश कर रहा हूं और मुझे बहुआयामी सरणी में मान/सेट मानों में समस्या है। मैं वर्तमान क्रम को $_SESSION['basket']
में रखता हूं। ऐसा लगता है कि:गतिशील रूप से बहु-आयामी सरणी में मान प्राप्त करने/सेट करने के लिए कार्य
[basket] => Array
(
[0] => Array
(
[pid] => 3
[name] => Camera
[price] => 200.99
[quantity] => 1
)
[1] => Array
(
[pid] => 5
[name] => Computer
[price] => 320.99
[quantity] => 1
[extras] => Array
(
[0] => Array
(
[pid] => 86
[name] => RAM
[price] => 99
[qty] => 1
)
[1] => Array
(
[pid] => 98
[name] => CD-ROM
[price] => 19.99
[qty] => 1
)
)
)
)
प्रत्येक आइटम को सबएरे के रूप में संग्रहीत किया जाता है। मेरे पास एक फ़ंक्शन है, जो जांचता है कि basket
सरणी में कोई दिया गया आइटम मौजूद है और इसके लिए पथ लौटाता है। उदाहरण के लिए, यदि मैं id
98
(सीडी-रोम) के साथ किसी उत्पाद की जांच करना चाहता हूं, तो फ़ंक्शन निम्न पथ लौटाता है: 1:extras:1
।
मैं समझ नहीं सकता कि पथ का उपयोग कैसे करें यदि मैं प्राप्त करना चाहता हूं या सरणी में एक मान सेट करना चाहता हूं। eval()
के उपयोग के बिना, सरणी कुंजी के पथ का निर्माण करना संभव है? मेरे पास ये कार्य हैं:
function get_val($array, $path, $key) {
//some code
return eval('return '.$array.$path.$key.';');
}
तो, $price = get_val($_SESSION['basket'], $path, 'price')
; सीडी-रोम (19,99)
function set_val($array, $path, $key, $value) {
//some code
$str = eval(''.$array.$path.$key.';');
$str = $value;
}
set_val($_SESSION['basket'], $path, 'price', '30');
30.
वहाँ ऐसा करने के लिए एक बेहतर तरीका है करने के लिए सीडी-रोम के लिए कीमत निर्धारित कर देगा के लिए मूल्य वापसी करना चाहिए?
धन्यवाद।
eval बुराई है !!! –