首页 > 解决方案 > 数组索引php中的按位运算符

问题描述

我收到了一条看起来像这样的数据

"siteService": "1|10|11|12|13|14|15|16|17|18|2|3|4|5|6|7|8|9".

此数据的目的是为用户和选择的一系列站点服务编制索引,并且数据将根据用户选择的内容而有所不同,因此它也可以是:

"siteService": "1|2|3|4|5"

所以我创建了一个这样的查找数组:

$siteServiceLookup = [
            1 => 'service',
            2 => 'service',
            3 => 'service',
            4 => 'service',
            5 => 'service',
            6 => 'service',
            7 => 'service',
            8 => 'service',
            9 => 'service',
            10 => 'service',
            11 => 'service',
            12 => 'service',
            13 => 'service',
            14 => 'service',
            15 => 'service',
            16 => 'service',
            17 => 'service',
            18 => 'service',
            19 => 'service',
            20 => 'service',
            21 => 'service',
            22 => 'service',
            23 => 'service',
            24 => 'service',
        ];

我需要做的是仅当用户选择并且为“siteService”创建的一系列数字代表用户正在选择的服务时才选择服务。

数据来自另一位开发人员,我想他希望我使用序列号作为索引,所以我通过我的数组迭代它,但我不知道按位运算符在数组索引中会做什么。我无法很快与他取得联系,我的最后期限即将到来。有人可以帮忙吗?

标签: phparraysindexingbit-manipulation

解决方案


你只需要一个简单的 foreach 循环

$siteServiceLookup = [
    1 => 'service1', 2 => 'service2', 3 => 'service3', 4 => 'service4', 5 => 'service5',
    6 => 'service6', 7 => 'service7', 8 => 'service', 9 => 'service', 10 => 'service',
    11 => 'service11', 12 => 'service12', 13 => 'service13', 14 => 'service14', 15 => 'service15',
    16 => 'service16', 17 => 'service17', 18 => 'service18', 19 => 'service19', 20 => 'service20',
    21 => 'service21', 22 => 'service22', 23 => 'service23', 24 => 'service24',];

$input = '1|3|5';
$wanted = explode('|', $input);

foreach ( $wanted as $key ) {
    echo $siteServiceLookup[$key] . PHP_EOL;
}

结果

service1
service3
service5

推荐阅读