遍历此数组,键值是非法偏移量?

时间:2012-11-24 20:21:10

标签: php arrays associative-array

所以我有一个这样的数组:

$style  = array(
 'css' => array(
    'name' => array('core-css', 'babababa'),
    'path' => array(get_bloginfo('stylesheet_url'), get_template_directory_uri() . '/bababa.css')
    ),
 'js' => array(
    'name' => array('core-css', 'babababa'),
    'path' => array(get_bloginfo('stylesheet_url'), get_template_directory_uri() . '/bababa.css')
    )   
);

我可以这种方式走过:

function load_css(){
    foreach($style as $key => $value){
        var_dump($key);
    }
}

现在var_dump将返回:

string(3) "css" string(2) "js" string(3) "css" string(2) "js"

问题是,如果我执行var_dump($ key ['css])或'js',我会收到非法的偏移错误.....

我需要检查两者,所以我假设:

if(isset($key['css']) && $key['css']){}

然后

if(isset($key['js']) && $key['js']){}

但唉它不起作用.....

有人可以告诉我我做错了什么吗?我无数次地走过这样的阵列......>。<

3 个答案:

答案 0 :(得分:0)

您需要使用$style['css']$style[$key]。密钥本身是一个字符串,而不是一个数组。

答案 1 :(得分:0)

这是正确的PHP行为

$a = array(
    'key' => 'value';
);

foreach ($a as  $key => $value) {
     echo $key . PHP_EOL;
     echo $value . PHP_EOL;
}

将输出

key
value

获取名称和路径使用:

$value['name'];
$value['path'];

答案 2 :(得分:0)

尝试使用$ value ['name']等。样式数组的键是'css'和'js',数组是$ value。

(另外,我认为这只是你问题中的一个错字,但你还没有关闭$key['css]中的引用: - )

相关问题