2010-11-03 46 views
0

我试图访问以前创建的多维数组中的信息。使用print_r(),我已经得到了有关阵列此信息(我已经间隔了自己,may've这样做很奇怪...):初学者的PHP问题 - “:”在多维数组中

Array ( 
    [Video] => Array ( 
     [0] => a:3:{ 
      s:19:"upload_video_submit"; 
      s:0:""; 
      s:12:"upload_video"; 
      s:26:"this-is-the-video-link.mp4"; 
      s:12:"video_length"; 
      s:8:"10-10-10"; 
      } 
    ) 
    [_edit_last] => Array ([0] => 1) 
    [_edit_lock] => Array ([0] => 1288823181) 
    [key] => Array ( 
     [0] => a:4:{ 
      s:4:"game"; 
      a:2:{ 
       i:0; 
       s:4:"9man"; 
       i:1; 
       s:5:"18man"; 
       } 
      s:4:"type"; 
      a:1:{ 
       i:0; 
       s:7:"Lecture"; 
       } 
      s:5:"coach"; 
      a:1:{ 
       i:0; 
       s:8:"msusyr24"; 
       } 
      s:12:"upload-video"; 
      s:70:"http://localhost:8888/pocarr/wp-content/uploads/2010/09/BigCupcake.flv"; 
      } 
      ) 
    ) 

我想访问内部数组按键阵列,比如像 echo $key_array[key][0]["type"]拿到“百家”,或echo $key_array[Video][0]["upload_video"]得到“这,是最videolink.mp4” ......但我完全被莫名其妙“:” S

最我可以指出,“s”=一个字符串,数字是字符的数量(类似“a”=一个数组)。

任何想法如何从数组中获取该信息?

UPDATE: 我最终使用:

$new = unserialize($keys_array[Video][0]); 
echo $new[upload_video]; 

感谢您的帮助!

+0

请尝试'的var_dump($ you_array)'代替'的print_r($ yoy_array)'和后期输出。 – seriyPS 2010-11-03 22:50:51

回答

4

看起来你的一些数组值已经被序列化了。查看PHP的unserialize函数。这样做将允许您像描述的那样访问数组元素。

例如:

print_r(unserialize($key_array[Video][0])); 
+0

完美!并感谢您的参考! – christina 2010-11-04 16:33:27

3

数组元素被序列化。反序列化它们,并且它们将更容易访问。

$videoArray = unserialize($myArray['Video'][0]); 
3

还有一件事:

如果要格式化您的回音代码

尝试下一次与

echo "<pre>"; 
print_r($data); 
echo "</pre>";