Извлечение элементов массива на основе доступности префикса
В сценарии, где у вас есть массив с различными ключевыми префиксами, извлекаются только элементы, начинающиеся с конкретный префикс может оказаться полезной задачей. Давайте рассмотрим пример массива:
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