在php中从数组中获取键和值
使用此阵列数据:在php中从数组中获取键和值,php,Php,使用此阵列数据: $tokens = array ( 31536000 => 'year', 2592000 => 'month', 604800 => 'week', 86400 => 'day', 3600 => 'hour', 60 => 'minute', 1 => 'second' ); 我希望能够获得密钥和值,我尝
$tokens = array (
31536000 => 'year',
2592000 => 'month',
604800 => 'week',
86400 => 'day',
3600 => 'hour',
60 => 'minute',
1 => 'second'
);
我希望能够获得密钥和值,我尝试了
$tokens["day"];
但它什么也不退
如何获取每个项目,但不在循环中?例如foreach,这是因为day是值,而不是键
$tokens[86400]等于天
你需要重新排列你的阵列,这样“一天”=>86400,而不是相反
一个简单的方法是使用。$key=array\u search'day',$tokens;可以使用值获取索引
美元代币[天];这不会返回任何内容,因为“day”不是索引,而是一个值
可以使用索引获取数组的值
喜欢
$token['86400']这将返回值day如果您想通过已知值访问密钥,那么您只需使用array\u flip翻转数组即可: 或者,如果您有权访问执行此操作的代码,则只需首先以正确的方式创建数组:
$tokens = array (
'year' => 31536000,
'month' => 2592000,
'week' => 604800,
'day' => 86400,
'hour' => 3600,
'minute' => 60,
'second' => 1
);
嗯,这里有几个选择 可以使用foreach循环 可以使用数组搜索函数传递值并获取键。 你可以使用for循环,但它有点凝灰岩 让我们从第一个开始,最简单的:
$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/>";
}
对于其余的部分,即使使用For循环,我也不想走得太深。但我认为这可以帮助你
-继续黑客 必须使用array\u flip交换数组键和值。 这是得到答案的简单方法
$flipped_array = array_flip($tokens);
echo $flipped_array['day'];
结果是:
86400已经有很多解决方案可用,所以我在这里添加我的解决方案。您还可以将数组_键用作: 说明: 使用array_keys函数获取密钥,然后在原始数组中使用
$tokens[$arrayKeys[3]],因为此索引具有您所需的值日。这是基本的101个数组:$tokens[1]用于访问第二个和$keys=array\u keys$tokens;若要获取密钥数组,请访问的$keys[0]31536000@Rizier123,实际上你是错的,调用$tokens[0]会产生字符串year的结果,OP的数组以错误的方式反转aroundI认为这是数组反转时存在的最简单的解决方案!
$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");
$flipped_array = array_flip($tokens);
echo $flipped_array['day'];
$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"