Удалить элемент массива для определенного идентификатора

Я получаю идентификатор типа $id=2 в переменной

нравиться: $ count_id = $ request-> get ('count_id');

и из функции я получаю array, как показано ниже: например: $ results = get_experiance ();

    [0] => stdClass Object
        (
            [id] => 1
            [A] => a
            [B] => b
            [C] => c
            [D] => d
        )

    [1] => stdClass Object
        (
            [id] => 2
            [A] => w
            [B] => s
            [C] => d
            [D] => a
        )

    [2] => stdClass Object
        (
            [id] => 3
            [A] => r
            [B] => e
            [C] => f
            [D] => v
        )

Мой вопрос в том, что когда я получаю значение в $id=2, результат должен быть таким:

[0] => stdClass Object
        (
            [id] => 1
            [A] => a
            [B] => b
            [C] => c
            [D] => d
        )
[1] => stdClass Object
        (
            [id] => 3
            [A] => r
            [B] => e
            [C] => f
            [D] => v
        )

Означает, что я хочу удалить запись из получаемого массива на основе идентификатора. Как я могу этого добиться, может у кого-нибудь есть самый простой способ?

просто отключите этот ключ, например, имя вашего массива - $ arr, а ваш ключ - 2, который находится в $ key, затем напишите unset ($ arr [$ key])

vivek modi 19.06.2018 09:44

Измените функцию, чтобы использовать значения поля id в качестве ключей в массиве, который она возвращает. После этого это просто для достижения своей цели.

axiac 19.06.2018 09:45

простого foreach и if должно хватить, если есть, просто используйте unset

Kevin 19.06.2018 09:45
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
53
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете сделать что-то вроде:

unset ($ array [$ id]);

$array - основная переменная, в которой все элементы массива содержат

$id - это индекс

Как это отвечает на вопрос?

axiac 19.06.2018 09:45

Вопрос обновлен. В то время было сказано, что наличие переменной содержит Index. Теперь обновлено, что получение идентификатора в цикле и т.д. и т.д. В любом случае мой плохой

Naveed Ramzan 19.06.2018 10:16
Ответ принят как подходящий

Вы можете использовать array_filter. Вы также можете использовать array_values, если не хотите сохранять существующие ключи.

$arr = your array
$toRemove = "2";
$result = array_filter($arr, function($o) use ($toRemove){
    return $toRemove != $o->id;
});

echo "<pre>";
print_r( $result );
echo "</pre>";

Это вернет:

Array
(
    [0] => stdClass Object
        (
            [id] => 1
            [A] => a
            [B] => b
            [C] => c
            [D] => d
        )

    [2] => stdClass Object
        (
            [id] => 3
            [A] => r
            [B] => e
            [C] => f
            [D] => v
        )

)

Если вам не нужна новая переменная, вы можете просто переопределить массив как

$arr = array_filter($arr, function($o) use ($toRemove){
    return $toRemove != $o->id;
});

Док: array_filter (), array_values ​​()

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