dakata__92
Super Moderator
Колеги имам един метод в който въртя два цикъла вложени един в друг. Първият цикъл е горе долу добре измислен но проблемен ми е вторият цикъл. Прави много повече проверки от нужното и незнам как да намаля тези итерации.
Проблема ми е че незнам как директно ако е празен масивът $resultColumns да unset-на цялата колона array_column($this->matrix,$x) а не просто if (empty($resultColumns)) {unset($this->matrix[$y][$x]);} което кара цикъла да върти излишно.
PHP:
public function cleanEmptyRowsColumns()
{
if (!$this->replacement) {
throw new Exception("The method ".__FUNCTION__."() is used after using remainColors(...)!");
}
foreach ($this->matrix as $y => $row) {
$resultRows = array_diff($row,array($this->replacement));
if (empty($resultRows)) {
unset($this->matrix[$y]);
continue;
}
foreach ($row as $x => $column) {
$resultColumns = array_diff(array_column($this->matrix,$x),array($this->replacement));
echo"<pre> $y - ".print_r(array_column($this->matrix,$x),true).'</pre>';
if (empty($resultColumns)) {
unset($this->matrix[$y][$x]);
}
}
}
return $this;
}
Проблема ми е че незнам как директно ако е празен масивът $resultColumns да unset-на цялата колона array_column($this->matrix,$x) а не просто if (empty($resultColumns)) {unset($this->matrix[$y][$x]);} което кара цикъла да върти излишно.