Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从php多维数组中获取值_Php_Arrays_Multidimensional Array - Fatal编程技术网

从php多维数组中获取值

从php多维数组中获取值,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,在以下数组中,我将天数作为第一个值,将小时数作为第二个值: $myoptions = array ( array("1 day",24), array("2 days",48), array("3 days",72) ); 要从数组中获取第二项,我只需执行以下操作: echo $myoptions[0][1]; // returns 48 那么,如何使用其中一个值来搜索上面的数组索引呢?假设我需要知道数组的小时数='3天。设计该数组可能有更好的方法,但这里有一个函数可以满足您的

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

$myoptions = array ( 
  array("1 day",24),
  array("2 days",48),
  array("3 days",72)
);
要从数组中获取第二项,我只需执行以下操作:

echo $myoptions[0][1]; // returns 48

那么,如何使用其中一个值来搜索上面的数组索引呢?假设我需要知道数组的小时数='3天。

设计该数组可能有更好的方法,但这里有一个函数可以满足您的要求:

function gethours($x, $myoptions){
    foreach($myoptions as $o){
        if($o[0] == $x){
            return $o[1];
        }
    }
}
echo gethours('3 days', $myoptions);

如果搜索的列始终相同,则只需查找关联数组并将该列用作数组键即可

您向我们展示的阵列不太可能是您真正想要的

PHP的数组是所谓的关联数组,这意味着您可以使用任何东西对它们进行索引,而不仅仅是数字:

$myoptions = array(
  "1 day" => 24,
  "2 days" => 48,
  "3 days" => 72,
);
所以

将直接返回您需要的内容。当然,在实际应用程序中,您需要确保输入与数组的一个索引匹配

事实上,在不知道你想要完成什么的情况下,我们无法做出决定,但在大多数情况下,你确实需要相反的结果:

$myoptions = array(
  24 => "1 day",
  48 => "2 days",
  72 => "3 days",
);

也就是说,您的程序在内部存储和使用数字部分、小时数,并且每当您需要向用户显示它所代表的选项时,您都可以将其转换为人类可读的格式,而不是相反的方式。

您可以像下面一样使用
array\u column

echo array_column($myoptions,1,0)['3 days'];//72

$myoptions = array(
  24 => "1 day",
  48 => "2 days",
  72 => "3 days",
);
echo array_column($myoptions,1,0)['3 days'];//72