【发布时间】:2020-04-28 00:54:07
【问题描述】:
我有一个二维数组。我正在尝试获取给定值的键/索引名称。我该怎么做呢?我浏览了 PHP 手册,他们建议进行迭代,但我不想迭代。有没有办法不用迭代?
我想做类似的事情
$country = 'Algeria';
echo $iso_countries[$country]; //obviously this will throw an error since the index does not exist. It's just an example.
数组
$iso_countries = array
(
'AF' => 'Afghanistan',
'AX' => 'Aland Islands',
'AL' => 'Albania',
'DZ' => 'Algeria',
);
【问题讨论】:
-
如果数组是按值排序的,您可以执行binary search,它将在最多 8 个步骤中找到 256 个或更少条目的列表中的任何条目。除此之外,您需要预先构建一个将国家名称映射到其缩写的索引,这基本上就是
array_flip()将要做的。 -
您还应该摒弃“循环不好”的观念。循环是做几乎所有事情的基础,您应该花精力了解何时/为什么会错误地使用循环并避免这些,而不是试图围绕一个不存在的问题进行工程设计。