Unsetting several indexes starting with a predetermined prefix

dms

I have an array that looks like this:

Array ( [game.info.campaign.end_date] => 2016-07-31, [game.info.campaign.start_date] => 2016-07-11, [game.info.campaign.peak_date] => 2016-07-21, [game.info.campaign.promo] => 'pokemon_go' );

I would like to unset all of them in a few line without repeating code. Is there a way to do this in PHP?

if (array_key_exists('game.info.campaign.end_date', $result)) {
    unset($result['game.info.campaign.end_date']);
}

I am doing the above right now, but there's too much repetition and some arrays have thousands of entries that start with the same prefix.

Don't Panic

This should work for a given prefix. Just foreach over the array and unset keys that start with $prefix.

$prefix = 'game.info.campaign';
$l = strlen($prefix);

foreach ($array as $key => $value) {
    if (substr($key, 0, $l) == $prefix) {
        unset($array[$key]);
    }
}

Or, if you don't mind making a new array rather than unsetting keys in your original array, using array_filter with the ARRAY_FILTER_USE_KEY option (available in PHP 5.6+) will be much faster (3-5X in my tests).

$new = array_filter($array, function ($key) use ($prefix) {
    return strpos($key, $prefix) !== 0;
}, ARRAY_FILTER_USE_KEY);

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

How to fix session not starting after unsetting a variable

Check if string is starting with prefix

Create indexes for tables with prefix in PostgreSQL

How to check if clipboard is equal to a predetermined number, or several numbers in AHK?

Pandas: Indexes with several related lines

Merge several Series with different indexes, summing over duplicated indexes

Finding Longest Common Substring with starting indexes

Find the row indexes of several values in a numpy array

Create multiple rows from several column indexes

VB Moving several indexes at one time

Make npm ignore folders starting by certain prefix

Gremlin query to get vertices starting with a prefix

Rename multiple files sequentially and starting by the same prefix

grep serial numbers not starting with specific prefix

Validating student ID starting with specific prefix

Delete several directories with a common prefix at the command prompt

Automate starting several parallel screen threads?

Starting and Stopping Several Interval Loops dynamically

optionally run several commands when starting tmux

How to split a file into irregular parts between the starting and ending indexes?

How do you reindex an array in PHP but with indexes starting from 1?

How to iterate over dictionary items and indexes starting from 1?

How can I batch reindex several elastic indexes?

Indexes in MySQL for order by DESC, BETWEEN and several possible sets of fields for query

Conditional combined indexes:When there are several decimal types of indexes, the desired results can not be queried

Starting process in Google Colab with Prefix "!" vs. "subprocess.Popen(..)"

How to rename all files within a folder not starting with a specific prefix string?

How to test if a file starting with a particular prefix is present in a directory in shell script

CSS - select all elements that has class starting with prefix

TOP Ranking

  1. 1

    Failed to listen on localhost:8000 (reason: Cannot assign requested address)

  2. 2

    How to import an asset in swift using Bundle.main.path() in a react-native native module

  3. 3

    Loopback Error: connect ECONNREFUSED 127.0.0.1:3306 (MAMP)

  4. 4

    pump.io port in URL

  5. 5

    Spring Boot JPA PostgreSQL Web App - Internal Authentication Error

  6. 6

    BigQuery - concatenate ignoring NULL

  7. 7

    ngClass error (Can't bind ngClass since it isn't a known property of div) in Angular 11.0.3

  8. 8

    Do Idle Snowflake Connections Use Cloud Services Credits?

  9. 9

    maven-jaxb2-plugin cannot generate classes due to two declarations cause a collision in ObjectFactory class

  10. 10

    Compiler error CS0246 (type or namespace not found) on using Ninject in ASP.NET vNext

  11. 11

    Can't pre-populate phone number and message body in SMS link on iPhones when SMS app is not running in the background

  12. 12

    Generate random UUIDv4 with Elm

  13. 13

    Jquery different data trapped from direct mousedown event and simulation via $(this).trigger('mousedown');

  14. 14

    Is it possible to Redo commits removed by GitHub Desktop's Undo on a Mac?

  15. 15

    flutter: dropdown item programmatically unselect problem

  16. 16

    Change dd-mm-yyyy date format of dataframe date column to yyyy-mm-dd

  17. 17

    EXCEL: Find sum of values in one column with criteria from other column

  18. 18

    Pandas - check if dataframe has negative value in any column

  19. 19

    How to use merge windows unallocated space into Ubuntu using GParted?

  20. 20

    Make a B+ Tree concurrent thread safe

  21. 21

    ggplotly no applicable method for 'plotly_build' applied to an object of class "NULL" if statements

HotTag

Archive