2016-01-23 3 views
0

Я пытаюсь удалить объекты из массива на основе их позиции Я сохраняю позиции в массиве: $ items. И мой основной массив: $ массивunset несколько элементов массивов на основе позиции

<?php  $items = $_POST['items']; 
    $winkelkar = json_encode($_SESSION['winkelkar']); 
    $array = json_decode($winkelkar, true); 
    $aantalItems = count($items)-1; 
    for($i=$aantalItems;$i>=0;$i--){ 
     unset($array[$items[$i]]); 
    } 
    $array = array_values($array); 
    $_SESSION['winkelkar'] = $array; 
    echo json_encode($array);?> 

Я цикл по массиву и извлекать объекты, которые я не хочу. Он отлично работает с одним элементом, или если я удаляю больше, начиная с конца массива. Но если я начала с

массива $ = [{ "aantal": "2", "идентификатор": "21"}, { "aantal": "1", "идентификатор":» 96 "}, {" aantal ":" 1" , "идентификатор": "97", "optie": "24"}, { "aantal": "1", "идентификатор": "2"}, {» aantal ":" 1" , "идентификатор": "75"}]

И я хочу, чтобы удалить, скажем: $ пунктов = (0,2,4); Она удаляет другой объект, чем предполагалось, и возвращает:

[{ "aantal": "1", "идентификатор": "75"}]

Что я делаю неправильно? Если вам нужно больше частей моего кода, не стесняйтесь спрашивать!

спасибо.

ответ

0

Там, где я заполнял мой $ items массив, я не закончил свою петлю, заставляя цикл выполнять мой ajax-call несколько раз.

Отладка сделала трюк.

Смежные вопросы