【发布时间】:2017-05-11 14:06:03
【问题描述】:
我试图在一个不以零开头的数组中找到一个键。
这是我不太优雅的解决方案:
private $imagetypes = [
1 => [
'name' => 'banner_big',
'path' => 'campaigns/big/'
],
2 => [
'name' => 'banner_small',
'path' => 'campaigns/small/'
],
// ...
如果我使用$key = array_search('banner_big', array_column($this->imagetypes, 'name'));,结果是0
我想出了这个解决方案,但我觉得我不必要地复杂了代码:
/**
* @param string $name
* @return int
*/
public function getImagetypeFromName($name)
{
$keys = array_keys($this->imagetypes);
$key = array_search($name, array_column($this->imagetypes, 'name'));
if ($key !== false && array_key_exists($key, $keys)) {
return $keys[$key];
}
return -1;
}
有没有比这个更好的解决方案。
我无法更改密钥。
【问题讨论】: