从php

时间:2016-01-13 14:01:32

标签: php

使用此数组数据:

$tokens = array (
        31536000 => 'year',
        2592000 => 'month',
        604800 => 'week',
        86400 => 'day',
        3600 => 'hour',
        60 => 'minute',
        1 => 'second'
        );

我希望能够获得关键和价值,我试过

$tokens["day"];

但它没有返回任何东西。

我如何获得每个项目但不在循环内? (例如,foreach)

6 个答案:

答案 0 :(得分:6)

这是因为day,而不是密钥。

$tokens["86400"]等于day

您需要重新排列数组,以便'day' => 86400,而不是相反!

一种简单的方法是使用array_flip

答案 1 :(得分:3)

如果您想通过已知值访问密钥,那么您只需使用array_flip翻转数组:

$flipped = array_flip($tokens);

echo $flipped['day']; //86400

或者,如果您有权访问代码,那么首先以正确的方式创建数组:

$tokens = array (
    'year'   => 31536000,
    'month'  => 2592000,
    'week'   => 604800,
    'day'    => 86400,
    'hour'   => 3600,
    'minute' => 60,
    'second' => 1
    );

答案 2 :(得分:1)

$key = array_search('day', $tokens);您可以使用值

获取索引

$tokens["day"];这不会返回任何东西,因为'day'不是索引它是一个值

您可以使用索引获取数组的值 喜欢 $token['86400']这将返回值“day”

答案 3 :(得分:0)

嗯,这里有几种选择。

  1. 您可以使用foreach循环
  2. 您可以使用数组搜索功能传递值并获取密钥。
  3. 你可以使用for循环(但它有点凝灰岩)
  4. 让我们从第一个开始,最简单的:

    $my_array = [
    2334325 => "val_1",
    4354524 => "val_2",
    3213144 => "val_3",
    3232412 => "val_4"
    ];
    
    #here we use a "trick" for the foreach loop
    foreach($my_array as $key => $val)
    {
        echo "Key: $key <br/>Value: $val <br/><br/>";
    }
    

    通过此循环,您可以快速访问键和值。

    让我们来看看第二种方法,即使我建议您使用第一种方法:

    $my_array = [
    2334325 => "val_1",
    4354524 => "val_2",
    3213144 => "val_3",
    3232412 => "val_4"
    ];
    
    #let's make it dynamic. We create a function
    
    function arrSrc($arg)
    {
        #we declare a index
        $index;
    
        #we search the index by given value
        $index = array_search($arg);
    
        return $index;
    }
    
    echo arrSrc("val_1");
    

    对于其他人来说,即使使用for循环我也不想太深入。但我认为这可以帮到你。

    - 保持黑客攻击!

答案 4 :(得分:0)

您必须使用array_flip交换数组键和值。 这是获得答案的简单方法。

$flipped_array = array_flip($tokens);
echo $flipped_array['day'];

结果是: 86400

答案 5 :(得分:0)

已经有很多解决方案,所以我在这里添加我的解决方案。您也可以使用array_keys()作为:

$tokens = array (
        31536000 => 'year',
        2592000 => 'month',
        604800 => 'week',
        86400 => 'day',
        3600 => 'hour',
        60 => 'minute',
        1 => 'second'
        );

$arrayKeys = array_keys($tokens);
$requiredVal = $tokens[$arrayKeys[3]];
echo $requiredVal; // result "day"

<强>解释

使用array_keys函数获取密钥,而不是在原始数组中使用 $tokens[$arrayKeys[3]]因为此索引具有您所需的值()。

相关问题