php 如何将这个switch函数转换成数组?[关闭]

2ledvvac  于 2023-04-19  发布在  PHP
关注(0)|答案(2)|浏览(105)

已关闭,该问题需要details or clarity,目前不接受回答。
**想要改进此问题?**通过editing this post添加详细信息并澄清问题。

4天前关闭。
Improve this question
我在一个网站上有下面的开关函数,但是我现在需要输入的数据($data)是一个逗号分隔的列表,即AG,GCG,POA,CON,SPE
如果AG是列表中的第一个,它可以工作,但CSV字符串可能并不总是以相同的顺序。字符串中总是只有下面的代码之一,我想提取这个代码并将其转换为它的真实的名称,如果它存在,我该怎么做?我相信我需要一个数组,所以我的数组的项目将由“,”分隔

<?php
function division($data)
{
    switch ($data){
        case 'AG':
            return 'Agricultural Machinery';
        case 'GCG':
            return 'Groundcare & Garden Machinery';
        case 'CON':
            return 'Construction Machinery';
        default:
            return false;
    }
}
?>
ih99xse1

ih99xse11#

您可以使用PHP explode函数将逗号分隔的字符串拆分为一个数组。然后您可以循环遍历数组并根据switch语句检查每个项目,直到找到匹配。一旦找到匹配,您可以返回相应的值。

function division($data)
{
    $items = explode(',', $data);
    foreach ($items as $item) {
        switch ($item){
            case 'AG':
                return 'Agricultural Machinery';
            case 'GCG':
                return 'Groundcare & Garden Machinery';
            case 'CON':
                return 'Construction Machinery';
        }
    }
    return false;
}

在这段代码中,$data参数首先使用explode(',', $data)拆分成一个数组,它将在每个逗号处拆分字符串,并返回结果值的数组。然后,foreach循环将迭代数组中的每个项,并根据switch语句进行检查。如果找到匹配项,则返回相应的值。如果没有找到匹配项,则返回相应的值。函数将返回false。

rjzwgtxy

rjzwgtxy2#

如果我做对了,我会做这样的事情:

function division($data)
{
    $initials = [
        'AG' => 'Agricultural Machinery',
        'GCG' => 'Groundcare & Garden Machinery',
        'CON' => 'Construction Machinery'
    ];
    
    if(array_key_exists($data, $initials)) return $initials['data'];
    return false;

}

相关问题