Как отправить большой набор строк в SplObjectStorage в PHP, и если строка существует, чтобы не нажать

По сути, мне нужно отправить большой набор строк в SplObjectStorage и, если каждая строка не существует, выполнить какое-либо действие, если оно существует, выполнить другое действие.

$o1->id = '11111';
$s->attach($o1);
$o1->id = '22222';
$s->attach($o1);

Я получаю только 22222 в объекте, или он перезаписывает объект. Мне нужно получить оба, И если они соответствуют только одному из них. Мне нужно получить разные значения моих строк

1 ответ

Решение

Проблема здесь в том, что вы обновляете один и тот же объект, а сам объект не добавляется дважды.

Если вы работаете только со строками, было бы более эффективно использовать массив:

$array = [];

if (!isset($array['11111'])) {
    $array['11111'] = true;
}
// etc.

После этого вы можете использовать array_keys() чтобы получить все уникальные значения.

Другие вопросы по тегам