PHP数组\u切片不返回带整数键的数组
比如说,我有以下PHP代码:PHP数组\u切片不返回带整数键的数组,php,arrays,slice,Php,Arrays,Slice,比如说,我有以下PHP代码: 包含的\u file.php: DEFINE("MSWFFN",serialize(array( "mnu"=>array("n"=>"topmnu.swf","w"=>"980px","h"=>"80px","i"=>"mnu","p"=>"&subp=home") ))); main_file.php: require_once("included_file.php"); global $MSWFFN; $MSW
包含的\u file.php:
DEFINE("MSWFFN",serialize(array(
"mnu"=>array("n"=>"topmnu.swf","w"=>"980px","h"=>"80px","i"=>"mnu","p"=>"&subp=home")
)));
main_file.php:require_once("included_file.php");
global $MSWFFN;
$MSWFFN=unserialize(MSWFFN);
$swf=array_slice($MSWFFN,0,1,false); //first swf from cfg
var_dump($MSWFFN);
var_dump($swf);
根据上面所说的内容,它应该返回一个包含整数键的数组,但它不返回。您知道为什么不将“mnu”键更改为0?
输出:
array (size=1)
'mnu' =>
array (size=5)
'n' => string 'topmnu.swf' (length=10)
'w' => string '980px' (length=5)
'h' => string '80px' (length=4)
'i' => string 'mnu' (length=3)
'p' => string '&subp=home' (length=10)
array (size=1)
'mnu' =>
array (size=5)
'n' => string 'topmnu.swf' (length=10)
'w' => string '980px' (length=5)
'h' => string '80px' (length=4)
'i' => string 'mnu' (length=3)
'p' => string '&subp=home' (length=10)
哦,顺便说一句,我的Apache版本是Apache/2.2.23(Win32)PHP/5.3.18(VertrigoServ v2.29)您没有使用数字键 请注意,默认情况下,array_slice()将重新排序并重置数值数组索引。通过将“保留_关键点”设置为TRUE,可以更改此行为 关于这个“惊喜”,甚至有一种说法
另外,值得一提的是,原始变量的输出和
array_slice()
的输出完全相同,这使得后者有点无用。您没有使用数字键
请注意,默认情况下,array_slice()将重新排序并重置数值数组索引。通过将“保留_关键点”设置为TRUE,可以更改此行为
关于这个“惊喜”,甚至有一种说法
另外,不管怎样,原始变量的输出和
array\u slice()
的输出完全相同,这使得后者有点无用。要实现这一点,您可以使用:
输出:
Array (
[0] => Array
(
[n] => topmnu.swf
[w] => 980px
[h] => 80px
[i] => mnu
[p] => &subp=home
)
)
要实现这一点,您可以使用: 输出:
Array (
[0] => Array
(
[n] => topmnu.swf
[w] => 980px
[h] => 80px
[i] => mnu
[p] => &subp=home
)
)
哦,我想我误解了,它将键转换为数字键,而它只返回第n个元素。非常感谢你!它将修改和还原数字键,但将重新匹配和保留字符串键。请注意,数字键包括定义为字符串的键,例如
数组(“12”=>“某物…”)
。哦,我想我误解了,它把键转换成数字键,而只返回第n个元素。非常感谢你!它将修改和还原数字键,但将重新匹配和保留字符串键。请注意,数字键包括定义为字符串的键,例如数组(“12”=>“某物…”)
。好好玩玩吧。这正是我想要完成的!谢谢这正是我想要完成的!谢谢