0

我想出了一个解决方案(我将在下面发布),但我想知道是否有更好、更紧凑的方法?

function removeImage($id) {
    $index;

    for ($i = 0; $i <= count($this->_images); $i++) {
        if ($this->images[$i] == $id) {
            $index = $i;
            break;
        }

        if ($i == count($this->_images)) {
            throw new Exception("No image with this ID found.");
        }
    }

    unset($this->_images[$index]);
    $this->_images = array_values($this->_images);
}
4

1 回答 1

0

查找具有特定值的数组项

array_search()

您更新的代码:

$index = array_search($id, $this->_images);
if ($index !== false) {
  unset($this->_images[$index]);
  $this->_images = array_values($this->_images);
}

注意:除非顺序索引很重要,否则如果您重构代码以使用foreach.

于 2013-02-14T17:14:34.927 回答