ФорумПрограммированиеPHP для идиотовPHP и ООП → удаление элемента класса, это возможно?

удаление элемента класса, это возможно?

  • chuche

    Сообщения: 7 Репутация: N Группа: Кто попало

    Spritz 12 апреля 2011 г. 2:38

    помогите, ситуация такая:
    нужно в классе, в котором находиться матрица, состоящая из массивов, в этой матрице удалить(!) одну строку и один столбец, при этом остальные элементы оставить.
    можно ли функцией __clone() это сделать?
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 12 апреля 2011 г. 3:02, спустя 23 минуты 55 секунд

    можно, но это не должна делать clone
  • chuche

    Сообщения: 7 Репутация: N Группа: Кто попало

    Spritz 12 апреля 2011 г. 15:54, спустя 12 часов 52 минуты 34 секунды

    Сам класс:
    class Matrix
    {
        public $items;
        public $size;
        public $max_val;
        public $max_x;
        public $max_y;
    
    public function __construct($size) {
            $this -> size = $size;
            for ($i=0;$i<$size;$i++)
            {
                for ($j=0;$j<$size;$j++)
                {
                    $this -> items[$i][$j] = new Cell();
                    $this -> items[$i][$j] -> value = 0;
                    $this -> items[$i][$j] -> x = $i;
                    $this -> items[$i][$j] -> y = $j;
                }
            }
            
        }

    Как-то так, вот только не совсем так, как хотелось…
    function CutMatrix2($src,$x,$y)
    {
        $dst = new Matrix($src->size-1);
       
        $v=-1;
        for ($i=0;$i<$src->size;$i++)
            {
                $w=0;
                if ($i<>$newi) $v++;
                for ($j=0;$j<$src->size;$j++)
                {
                    if ($i!=$newi&&$j!=$newj)
                    {
                        $dst->items[$v][$w]->value = $src->items[$i][$j]->value;
                        $dst->items[$v][$w]->x =     $src->items[$i][$j]->x;
                        $dst->items[$v][$w]->y =     $src->items[$i][$j]->y;
                        $w++;
                    }
                }
            }
            return $dst;
    }

    Да, с клоном понятно, не получилось ничего.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!