我有一个简短的问题,我一直想知道一段时间。有一个完美的解决方法,但我想知道问题到底是什么。
我有一个由底层关联数组组成的数组($ lines)。我想得到那些基础数组的索引(基本上是任意一个),所以我使用:
$headers = array_keys($lines[0]);
然而,这给了我以下错误:
警告:array_keys()期望参数1为数组,给定
为null
但是,当我使用它时:
$line0 = $lines[0];
$headers = array_keys($line0);
一切都按照我的要求运作。现在据我所知,这两个应该是完全等价的,所以我想知道这是PHP中的错误,还是我在这里不理解的东西。
PHP版本是5.3.1
在我的测试用例中,$ lines数组看起来像这样:
Array (
[0] => Array
(
[id] => 00
[name] => John Doe
)
[1] => Array
(
[id] => 007
[name] => James Bond
)
)
答案 0 :(得分:2)
我无法重现。 我写了以下文件:
<?php
$lines = array(
array("A" => 1, "B" => 2, "C" => 3),
array("A" => 1, "B" => 2, "C" => 3),
array("A" => 1, "B" => 2, "C" => 3)
);
echo "<pre>";
var_dump(array_keys($lines[0]));
echo "</pre>";
输出正确:
array(3) {
[0]=>
string(1) "A"
[1]=>
string(1) "B"
[2]=>
string(1) "C"
}
所以我想这可能是你的程序或你的php版本中的错误,但没有“正常”。
答案 1 :(得分:1)
尝试并尽可能少地写出问题以确定是否可以重新创建,如果是,那么您需要提交到http://bugs.php.net