从PHP多维数组中获取值



在下面的数组中,我将天数作为第一个值,将小时数作为第二个值:

$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);

如果你搜索的列总是相同的,你可以选择一个关联数组,并使用该列作为数组键。

相关内容

  • 没有找到相关文章

最新更新