У меня есть этот кусок PHP кода, который дает мне ошибку:предупреждение Нелегальная строка смещение в PHP
Warning: Illegal string offset 'mod_modulecode' in C:\xampp\htdocs\MP\multi\functions.php on line 29
Это код, который выдается предупреждение в отношении:
function set_rights($menus, $menuRights) {
$data = array();
for ($i = 0, $c = count($menus); $i < $c; $i++) {
$row = array();
for ($j = 0, $c2 = count($menuRights); $j < $c2; $j++) {
if ($menuRights[$j]["rr_modulecode"] == $menus[$i]["mod_modulecode"]) {
if (authorize($menuRights[$j]["rr_create"]) || authorize($menuRights[$j]["rr_edit"]) ||
authorize($menuRights[$j]["rr_delete"]) || authorize($menuRights[$j]["rr_view"])
) {...................'
Любая помощь был бы весьма признателен.
В массиве '$ menus' содержится ключ' mod_modulecode'? Если он содержит, то ваш цикл пытается получить доступ к следующему элементу до последнего, который не существует. Если это так, то в вашем цикле '$ i <$ c - 1' попробуйте это – Haridarshan
вы можете распечатать свой массив, прежде чем использовать его в цикле, я сомневаюсь, что ваши ключи массива не цитируются как строка. –
Похоже, что '$ menus' - это строковый массив, а не многомерный массив. – SOFe