我有一些像这样的阵列
$something = array('foo' => 'bar');
现在我如何获得$something
的内容?我想使用这个方法从数组中检索值,但是无法找到如何找到一个只用它的名字作为字符串给出的数组。
getArrayData($array,$key){
// $array == 'something';
// $key == 'foo';
// this should return 'bar'
}
编辑:
我可能过多地抽象了这个,所以这里是完整的代码:
class Config {
public static $site = array(
'ssl' => 'true',
'charset' => 'utf-8',
// ...
);
public static $menu = array(
'home' => '/home',
'/hub' => '/hub',
// ...
);
public static function get($from, $key){
return self::$from[$key];
}
public static function __callStatic($method, $key){
return self::get($method,$key);
}
}
最后,使用Config::site('charset')
返回'utf-8'
答案 0 :(得分:1)
您可以使用Variable-Variables
<?php
$something = array('foo' => 'bar');
$key="foo";
$arrayName="something";
echo getArrayData($$arrayName,$key); // Notice the use of $$
function getArrayData($array,$key){
return isset($array[$key])? $array[$key] : NULL ;
}
<强> Fiddle 强>
答案 1 :(得分:0)
您应该将数组本身作为参数而不是名称传递。然后你可以通过给定的键返回值:
function getArrayData($array,$key){
return $array[$key];
}
答案 2 :(得分:0)
$array == 'something'
并不重要,如果密钥存在,您可以轻松检查数组键并返回值:
function getArrayData($array,$key){
if(isset($array[$key])) return $array[$key];
else return "";
}