array_keys()期望参数1为数组,给定布尔值

时间:2018-06-15 13:30:27

标签: php arrays

我最近移动了cpanel托管,我有以下错误,如果你可以帮助我,我无法解决。谢谢

File: /public_html/admin/users.php
Line: 180
Message: array_keys() expects parameter 1 to be array, boolean given

Call stack:

File: /public_html/admin/users.php (Line: 180)
Function: array_keys

第180行:

 <th><?php echo implode('</th><th>', array_keys(current($recruits))); ?></th> 

1 个答案:

答案 0 :(得分:0)

错误说明了自己。显然,您想将数组键与th元素连接起来,但是请看看currentarray_keys的实际作用和要求使其正常工作,文档是不言自明的,但是我将在下面写一些示例,希望可以帮助您理解。

  

http://php.net/manual/en/function.array-keys.php

array_keys将从关联数组中提取密钥,例如:

$mySpecialArray = ["key1" => "value1", "key2" => "value 2"];
$keys = array_keys($mySpecialArray);
//$keys will contain "key1", "key2"

//I feel you're new to php, so I'm going to write an example of implode aswell

$implodeStringWithComma = implode(',', $keys);
//$implodeStringWithComma will result in a string like this -->  "key1,key2"

$implodeStringWithTh = implode('</th><th>', $keys)
//$implodeStringWithTh will result in a string like this -->  "key1</th><th>key2"

您的错误指出,array_keys内部不是数组,这是因为array_keys内部是current($recruits),并且错误告诉您current($recruits)是布尔值。那么,电流有什么作用?

  

http://php.net/manual/en/function.current.php

“ current()函数仅返回内部指针当前指向的数组元素的值。 警告 此函数可以返回布尔FALSE,但也可以返回非布尔值,其值为FALSE。 “

没有进一步解释$recruits的内容和目的,不能为您提供更多帮助,但是我猜您正在$recruits中从结果转向结果。我相信$recruits是一个多维数组,其中包括以下几行:

$recruits[0] => ["key1" => "value1", "key2" => "value2", "key3" => "value3"];
$recruits[1] => ["key4" => "value4", "key5" => "value5", "key6" => "value6"];
.
.  
.

我还猜测您正在使用内部指针在数组之间循环(当您使用current($ recruits)时,当您执行{{1}时,它相当于$recruits[0] },再到next($recruits),当前将为您提供下一个数组,与current($recruits)等价,例如$recruits[1]将为您提供end($recruits)的最后一个数组)。您的代码很可能指向(如文档所述)指向数组之外的东西,或者数组为空。