使用此数组数据:
$tokens = array (
31536000 => 'year',
2592000 => 'month',
604800 => 'week',
86400 => 'day',
3600 => 'hour',
60 => 'minute',
1 => 'second'
);
我希望能够获得关键和价值,我试过
$tokens["day"];
但它没有返回任何东西。
我如何获得每个项目但不在循环内? (例如,foreach)
答案 0 :(得分:6)
答案 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)
嗯,这里有几种选择。
让我们从第一个开始,最简单的:
$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]]
因为此索引具有您所需的值(天)。