«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как извлечь элементы массива на основе определенного префикса ключа в PHP?

Как извлечь элементы массива на основе определенного префикса ключа в PHP?

Опубликовано 22 ноября 2024 г.
Просматривать:789

How to Extract Array Elements Based on a Specific Key Prefix in PHP?

Извлечение элементов массива на основе доступности префикса

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

array(
  'abc' => 0,
  'foo-bcd' => 1,
  'foo-def' => 1,
  'foo-xyz' => 0,
  // ...
)

Задача: Сохранять только элементы, начинающиеся с 'foo-'.

Функциональный подход:

$array = array_filter($array, function($key) {
    return strpos($key, 'foo-') === 0;
}, ARRAY_FILTER_USE_KEY);

Функция array_filter с анонимной функцией проверяет, начинается ли ключ каждого элемента с 'foo-'. Если это условие выполнено, элемент сохраняется в измененном массиве.

Процедурный подход:

$only_foo = array();
foreach ($array as $key => $value) {
    if (strpos($key, 'foo-') === 0) {
        $only_foo[$key] = $value;
    }
}

Этот подход перебирает массив, проверяя каждый ключ на наличие префикса «foo-». Если элемент найден, он добавляется в новый массив, содержащий только те элементы, которые соответствуют критерию.

Процедурный подход с использованием объектов:

$i = new ArrayIterator($array);
$only_foo = array();
while ($i->valid()) {
    if (strpos($i->key(), 'foo-') === 0) {
        $only_foo[$i->key()] = $i->current();
    }
    $i->next();
}

При таком подходе объект ArrayIterator используется для обхода исходного массива. Каждый ключ проверяется на наличие префикса «foo-», и соответствующие элементы добавляются в новый массив.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3