मान लें कि आपका दिया गया सरणी $ array में है, आप इसका उपयोग कर सकते हैं। लेकिन जैसा कि मैंने आपको पहले ही बताया था कि आपको समान नाम वाली श्रेणियों को संभालने के लिए आईडी का चयन करना चाहिए और उन्हें अपने चयन बॉक्स में विकल्प मान के रूप में उपयोग करना चाहिए:
$options = get_options($array);
echo "<select>";
foreach($options as $val) {
echo "<option>".$val."</option>";
}
echo "</select>";
function get_options($array, $parent="", $indent="") {
$return = array();
foreach($array as $key => $val) {
if($val["parent category"] == $parent) {
$return[] = $indent.$val["category name"];
$return = array_merge($return, get_options($array, $val["category name"], $indent." "));
}
}
return $return;
}
यह मानते हुए कि अब आपके पास "category_id" और "parent_category_id" के रूप में आपके सरणी में आईडी हैं, आप इसका उपयोग कर सकते हैं। $रिटर्न में कुंजी से पहले का "x" केवल इस बात से बचने के लिए है कि PHP आपकी कुंजियों को बदल देता है, क्योंकि वे संख्यात्मक हैं।
$options = get_options($array);
echo "<select>";
foreach($options as $key => $val) {
echo "<option value='".substr($key,1)."'>".$val."</option>";
}
echo "</select>";
function get_options($array, $parent=0, $indent="") {
$return = array();
foreach($array as $key => $val) {
if($val["parent_category_id"] == $parent) {
$return["x".$val["category_id"]] = $indent.$val["category name"];
$return = array_merge($return, get_options($array, $val["category_id"], $indent." "));
}
}
return $return;
}