0

I am beginner in Laravel and php.

I have this code:

$arrayToDelete = array();
$traverse = function ($categories) use (&$traverse) {
    foreach ($categories as $category) {
        //$this->model->delete($category->id);
        echo 'Delete'.$category->category_name.' i '.$category->id.'<br/>';
        $traverse($category->children);
    }
};

dd($traverse($node));

This code return me:

Delete Mobile i 14 Delete Samsung i 15 Delete iPhone i 16 Delete Xiomi i 17

It's ok. I need add id to $arrayToDelete. How can I make it?

RiggsFolly
  • 93,638
  • 21
  • 103
  • 149
traffske
  • 111
  • 1
  • 8

2 Answers2

1

You can pass more than one parameter into the USE so pass your other array, also by reference of course

$arrayToDelete = array();
$traverse = function ($categories) use(&$traverse, &$arrayToDelete) {
    foreach ($categories as $category) {
        arrayToDelete[] = $category->id;
        echo 'Delete'.$category->category_name.' i '.$category->id.'<br/>';
        $traverse($category->children);
    }
};

dd($traverse($node));
RiggsFolly
  • 93,638
  • 21
  • 103
  • 149
-1
$arrayToDelete = [];
$traverse = function ($categories) use (&$traverse,&$arrayToDelete) {
    foreach ($categories as $category) {
        //$this->model->delete($category->id);
        echo 'Delete'.$category->category_name.' i '.$category->id.'<br/>';

        $arrayToDelete[] = $category->id;

        $traverse($category->children);
    }
};

dd($traverse($node));
Omer YILMAZ
  • 1,234
  • 1
  • 7
  • 15