0

嘿,我是 php 中的类和数组的新手,但需要了解如何从此类函数数组中获取正确的值

class theCart {
    public static $DISTANCE = array(
      '0'  => '0 - 75',
      '10' => '76 - 125',
      '20' => '126 - 175',
      '30' => '176 - 225',
      '40' => '226 - 275',
      '50' => '276 - 325'
    );
}

我试图匹配的输出如下所示:76 - 125

我只是这样称呼它吗

 $distanceNum = '76 - 125';
 $tmpDistanceTotal = $DISTANCE($distanceNum);

那么$tmpDistanceTotal的值应该是10吗?我在想数组中只有值0,10,20,30,40,50

我有另一个数组:

public static $STEPS = array(
    '0' => 0,
    '1' => 0,
    '2' => 0,
    '3' => 25,
    '4' => 50,
    '5' => 75,
    '6' => 100,
    '7' => 125
);

我试图与上面匹配的输出是3我不确定它是否在寻找字符串?

4

4 回答 4

3

这应该清楚一点:

foreach (theCart::$DISTANCE as $k => $v) {
    if ($v == '76 - 125') {
        echo $k;
        break;
    }
}
于 2012-10-30T15:43:09.860 回答
2

要使 $tmpDistanceTotal 获得值 10,您可以执行以下操作:

$tmpDistanceTotal = array_search($distanceNum, theCart::DISTANCE);

或者你可能希望得到这样的结果:

class theCart {
    public static $DISTANCE = array(
      '0'  => '0 - 75',
      '10' => '76 - 125',
      '20' => '126 - 175',
      '30' => '176 - 225',
      '40' => '226 - 275',
      '50' => '276 - 325'
    );

    public function getTotalDistance($distanceNum)
    {
         return array_search($distanceNum, self::DISTANCE);
    }
}
于 2012-10-30T15:51:39.100 回答
1

您的问题实际上只是关于数组,您应该从此处删除这些类以使事情更容易理解:

$DISTANCE = array(
  '0'  => '0 - 75',
  '10' => '76 - 125',
  '20' => '126 - 175',
  '30' => '176 - 225',
  '40' => '226 - 275',
  '50' => '276 - 325'
);

$variable = $DISTANCE[10];

在上面的示例中,变量将等于 76-125。您正在使用关联数组,因此您需要稍微阅读一下它们,因为您的问题表明您并不真正了解数组的工作原理。一旦你把它弄下来,继续前进,像你上面提到的那样进入一个类上下文。

您可以在此处查看 PHP 手册:http: //php.net/manual/en/language.types.array.php

对于一个简短而快速的答案,您可以使用

 $tempVar = 10;
 $tmpDistance = $this->DISTANCE[$tempVar];
于 2012-10-30T15:44:47.707 回答
1

不确定您要做什么,但您可以使用array_search

$distanceNum = '76 - 125';
$key = array_search($distanceNum, theCart::$DISTANCE);

$key现在是10。

于 2012-10-30T15:46:45.310 回答