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

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

  • chuche

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

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

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

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

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

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

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

    Spritz 13 апреля 2011 г. 2: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;
    }

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

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