Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一个php数组,其中包含一些索引的值_Php_Arrays - Fatal编程技术网

一个php数组,其中包含一些索引的值

一个php数组,其中包含一些索引的值,php,arrays,Php,Arrays,我想在php中创建一个数组或函数,如下所示: 对于1-20之间的索引,返回“类型1” 对于20-25之间的索引,返回“类型2” 对于25-35之间的索引,返回“类型1” 对于35-40之间的索引,返回“类型3” 对于40-60 RETUNS“类型2”之间的索引 我该怎么做? 例如,ID1、ID22、ID50可以是类型1,但ID2、ID23、ID51也可以是类型2 我试过这个: function getSkinType($id) { $skins = array( 0,13

我想在php中创建一个数组或函数,如下所示:
对于1-20之间的索引,返回“类型1”
对于20-25之间的索引,返回“类型2”
对于25-35之间的索引,返回“类型1”
对于35-40之间的索引,返回“类型3”
对于40-60 RETUNS“类型2”之间的索引

我该怎么做?
例如,ID1、ID22、ID50可以是类型1,但ID2、ID23、ID51也可以是类型2

我试过这个:

function getSkinType($id) {
    $skins = array(
        0,13,40,46,47,59,60,72,73,76,82,83,84,85,90,91,93,98,102,103,104,105,106,107,108,109,110,111,112, 113,114,115,116,120,121,123,124,125,126,127,128,141,147,150,163,164,165,166,169,170,173,174,175,177,181,185,186,187,189,191,193,194,192,195,203,204,216,219,221,223,228,233,240,258,259,263,269,270,271,272,290,292,293,294,295,296,297,298,299,3 => "premium",
        2,7,9,11,14,15,16,17,19,20,21,22,18,23,24,25,28,29,30,32,33,34,35,36,41,43,44,45,48,51,52,57,58,63,64,66,67,69,88,92,95,96,97,100,101,122,131,133,138,139,140,142,143,148,154,155,156,167,171,172, 176,179,180,182,183, 184,188,190,201,202,206,214,215,222,224,225,226,227,234,238,247,248,249,250,251,252 => "normal",
        1,12,27,31,37,50,56,78,79,129,134,135,136,137,152,153,157,158,159,160,161,162,196,200,212 => "default"
    );
    return $skins[$id];
}

一种可能的方法是简单地使用
$kins
数组中的索引来表示类别。这可以传递到函数本身。例如,如果要检索
82
蒙皮(在第一个类别的索引
10
),可以使用

<?php

function getSkinType($category, $id) {
$skins = array(
    [0,13,40,46,47,59,60,72,73,76,82,83,84,85,90,91,93,98,102,103,104,105,106,107,108,109,110,111,112, 113,114,115,116,120,121,123,124,125,126,127,128,141,147,150,163,164,165,166,169,170,173,174,175,177,181,185,186,187,189,191,193,194,192,195,203,204,216,219,221,223,228,233,240,258,259,263,269,270,271,272,290,292,293,294,295,296,297,298,299,3],
    [2,7,9,11,14,15,16,17,19,20,21,22,18,23,24,25,28,29,30,32,33,34,35,36,41,43,44,45,48,51,52,57,58,63,64,66,67,69,88,92,95,96,97,100,101,122,131,133,138,139,140,142,143,148,154,155,156,167,171,172,176,179,180,182,183, 184,188,190,201,202,206,214,215,222,224,225,226,227,234,238,247,248,249,250,251,252],
    [1,12,27,31,37,50,56,78,79,129,134,135,136,137,152,153,157,158,159,160,161,162,196,200,212]
);
    return $skins[$category][$id];
}

echo getSkinType(0, 10); // 82
试试这个

function getSkinType($id) {
     $grouping = [
         'type 1' => [1, 13, 20, 25, 35], // [ ids ]
         'type 2' => [20, 25],
         'type 3' => [35, 40],
     ];

     foreach($grouping as $type => $range) {
         if (in_array($id, $range))  {
              return $type;
         }
     }

     return 'Type not found'; // default text here
}


echo getSkinType(13); // "type 1"

你的问题不清楚。。。当你说索引1-20时。你是指实际的索引还是该范围内的值?我只想做一个类似于1,5,10的例子:返回“type 1”,但使用数组。缩进和双空格我想我没有解释好。例如,我的ID是13,我想知道类别是什么。比如getType($id),这个函数返回id的类型。我想我没有解释清楚。例如,我的ID是13,我想知道类别是什么。类似getType($id)的东西,此函数返回id的类型。是的,此函数将返回id的类型。你试过了吗?是的,但举例来说,我没有一个特定的范围,类型1可以是1,3,5,类型2可以是2,4,6。类似于id 1、3或5的返回类型1,id 2、4或6的返回类型1,类似于case语句,但我不想使用case语句。它已更新为只检查值,而不是使用范围。