说,我在PHP中有以下代码:
的 included_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);
基于所说的in this question和php website,它应该返回一个带整数键的数组,但它没有。
知道为什么它不会将“ 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)
答案 0 :(得分:2)
您没有使用数字键。
请注意,默认情况下,array_slice()将重新排序并重置数字数组索引。您可以通过将preserve_keys设置为TRUE来更改此行为。
关于这个“惊喜”,甚至还有10-year-old comment。
另外,对于它的价值,原始变量的输出和array_slice()
的输出完全相同,使得后者有点无用。
答案 1 :(得分:1)
要实现这一目标,您可以使用array_values():
var_dump(array_values($MSWFFN));
输出:
Array (
[0] => Array
(
[n] => topmnu.swf
[w] => 980px
[h] => 80px
[i] => mnu
[p] => &subp=home
)
)