Ada fungsi yang menampilkan kategori mulai dari paling atas:
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);
}
Dengan hanya 3 elemen array, saya mendapatkan kesalahan:
"Ukuran memori yang diizinkan sebesar 134217728 byte habis"
Saya mengerti bahwa saya menggunakan sesuatu yang salah. Tolong, bantu saya memahami apa sebenarnya.
Ini adalah array masukan saya:
$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',
),
);
Ini adalah panggilan ke fungsi tersebut:
$strCategoryId = 193450;
getFullCategoryName($strCategoryId, $arrCategories);
else { $arrCategoryCurr = NULL; }
bagian ini tidak terpicu - person Shobi   schedule 20.05.2019NULL
menjadi string bukanlah masalah. Kondisielse
tidak pernah dimasukkan, jadi$arrCategoryCurr
tidak pernah disetel keNULL
(atau'NULL'
atau apa pun), jadiis_array($arrCategoryCurr)
tetap benar tanpa batas waktu, sehingga perulangan tidak pernah berakhir. - person deceze♦   schedule 20.05.2019