在下面的数组中,我将天数作为第一个值,将小时数作为第二个值:
$myoptions = array (
array("1 day",24),
array("2 days",48),
array("3 days",72)
);
要从数组中获得第二项,只需执行以下操作:
echo $myoptions[0][1]; // returns 48
那么我该怎么做才能使用其中一个值来搜索数组索引呢?假设我需要知道array = '3 days'的小时数
您可以使用array_column
作为
echo array_column($myoptions,1,0)['3 days'];//72
你给我们看的数组可能不是你真正想要的。
PHP的数组是所谓的关联数组,这意味着你可以使用任何东西来索引它们,而不仅仅是数字:
$myoptions = array(
"1 day" => 24,
"2 days" => 48,
"3 days" => 72,
);
echo $myoptions["3 days"]
或
$days = "3 days";
echo $myoptions[$days];
将直接返回您需要的内容。当然,在实际应用程序中,您需要确保您的输入匹配数组的一个索引。
实际上,这不是我们在不知道你想要完成什么的情况下可以决定的,但在大多数情况下,你真正需要的是相反的:
$myoptions = array(
24 => "1 day",
48 => "2 days",
72 => "3 days",
);
也就是说,您的程序在内部存储和使用数字部分,即小时数,并且每当您需要向用户显示它所代表的选项时,您就将其转换为人类可读的格式,而不是相反。
可能有更好的方法来设计这个数组,但是这里有一个函数可以满足您的要求:
function gethours($x, $myoptions){
foreach($myoptions as $o){
if($o[0] == $x){
return $o[1];
}
}
}
echo gethours('3 days', $myoptions);
如果你搜索的列总是相同的,你可以选择一个关联数组,并使用该列作为数组键。