初学者的PHP问题 - 在多维数组中的“:”

时间:2010-11-03 22:38:35

标签: php

我正在尝试访问先前创建的多维数组中的信息。使用print_r(),我已经获得了关于数组的信息(我自己已经分开了,可能已经这么奇怪了......):

    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"]获取“Lecture”,或echo $key_array[Video][0]["upload_video"]获取“this-is-the-videolink.mp4”......但我对“:”s完全感到困惑

我能说的最多是“s”=一个字符串,数字是字符数(类似“a”=数组)。

如何从阵列中获取该信息的任何想法?

更新 我最终使用了:

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

谢谢你的帮助!

4 个答案:

答案 0 :(得分:4)

看起来您的某些数组值已经过序列化。查看PHP的unserialize函数。这样做将允许您按照描述访问数组元素。

例如:

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

答案 1 :(得分:3)

数组元素已序列化。对它们进行反序列化,它们将更容易访问。

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

答案 2 :(得分:3)

还有一件事:

如果您想格式化您的回音代码,请尝试下次使用

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

答案 3 :(得分:1)

使用unserialize($ object);