开发者

Beginner's PHP question -- ":" in a multidimensional array

I'm trying to access information in a previously created multidimensional array. Using print_r(), I've got this info about the array(which I've spaced out myself, and may've done so oddly...):

    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";
            } 
            ) 
    )

I'd like to access the arrays inside the key array, such something like echo $key_array[key][0]["type"] to get "Lecture", or echo $key_array[Video][0]["upload_video"] to get "this-is-the-videolink.mp4" ... but I'm totally baffled by the ":"s

The most I can figure is that "s" = a string, and the number is the number of characters (similarly "a"= an array).

Any ideas how to get that info out of the array?

UPDATE: I ended up using:

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

Thanks for you help!


Looks like some of your array values have been serialized. Check out PHP's unserialize function. Doing so will allow you to access the array elements as you describe.

For example:

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


And one more thing:

if you want to format your echo code try next time with

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


The array elements are serialized. Unserialize them, and they'll be a lot easier to access.

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


Use unserialize($object);

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜