<?php
function category_select_options( $categories, $current=[], $prefix="" ){
    $response = "";
    $current = (array) $current;
    foreach( $categories as $category ){
        $selected = ( in_array( $category->id, $current ) ) ? "selected='selected'" : "";
       $title = $category->title;
        if( $prefix != "" )
          $title = $prefix . " " . $title;
       $response .= "<option value='{$category->id}' {$selected}>{$title}</option>";
      if( $category->has('children') )
           $response .= category_select_options($category->children, $current, $prefix . "-");
    }

   return $response;
}