มีฟังก์ชั่นแสดงหมวดหมู่ตั้งแต่ด้านบนสุด:
function getFullCategoryName($strCategoryId, $arrCategories)
{
$strCategoryIdPaent = NULL;
$arrCategoryCurr = isset($arrCategories[$strCategoryId]) ? $arrCategories[$strCategoryId] : NULL;
$arrCategoriesNames = [];
while (is_array($arrCategoryCurr)) {
$arrCategoriesNames[] = $arrCategoryCurr['title'];
if ($arrCategoryCurr['parentId'] && isset($arrCategories[$arrCategoryCurr['parentId']])) {
$arrCategoryCurr = $arrCategories[$arrCategoryCurr['parentId']];
} else {
$arrCategoryCurr = NULL;
}
}
krsort($arrCategoriesNames);
return implode(' > ', $arrCategoriesNames);
}
ด้วยองค์ประกอบอาร์เรย์เพียง 3 องค์ประกอบ ฉันได้รับข้อผิดพลาด:
"ขนาดหน่วยความจำที่อนุญาตคือ 134217728 ไบต์หมด"
ฉันเข้าใจว่าฉันใช้สิ่งผิดปกติ โปรดช่วยฉันเข้าใจว่าอะไรกันแน่
นี่คืออาร์เรย์อินพุตของฉัน:
$arrCategories = array (
193450 =>
array (
'id' => '193450',
'parentId' => '193450',
'title' => 'Blood glucose meter',
),
193451 =>
array (
'id' => '193451',
'parentId' => '193450',
'title' => 'Sugar test strips',
),
193452 =>
array (
'id' => '193452',
'parentId' => '193452',
'title' => 'Blood glucose meter',
),
);
นี่คือการเรียกใช้ฟังก์ชัน:
$strCategoryId = 193450;
getFullCategoryName($strCategoryId, $arrCategories);
else { $arrCategoryCurr = NULL; }
ส่วนนี้ไม่ได้รับการทริกเกอร์ - person Shobi   schedule 20.05.2019NULL
เป็นสตริงไม่ใช่ปัญหา ไม่เคยป้อนเงื่อนไขelse
ดังนั้น$arrCategoryCurr
จึงไม่เคยตั้งค่าเป็นNULL
(หรือ'NULL'
หรืออะไรก็ตาม) ดังนั้นis_array($arrCategoryCurr)
ยังคงเป็นจริงอย่างไม่มีกำหนด ดังนั้นการวนซ้ำจึงไม่มีวันสิ้นสุด - person deceze♦   schedule 20.05.2019