无法让这个数组工作,对数组来说是新的

时间:2009-11-25 04:53:14

标签: php

我希望数组($ img_array)在每次循环时都会增加,但它不会。 当我回显它'echo count(array);'

时,数组的长度是0
function imageSize($name, $nr, $category, $myarr){
    $path = 'ad_images/'.$category.'/'.$name.'.jpg';
    $path_thumb = 'ad_images/'.$category.'/thumbs/'.$name.'.jpg';
    list($width, $height) = getimagesize($path);
    list($thumb_width, $thumb_height) = getimagesize($path_thumb);
    //$myarr = array();
    $myarr['thumb_image_' . $nr . '_width'] = $thumb_width;
    $myarr['thumb_image_' . $nr . '_height'] = $thumb_height;
    $myarr['image_' . $nr . '_width'] = $width;
    $myarr['image_' . $nr . '_height'] = $height;

    return $myarr;

}

    if ($nr_of_pics!=0){
        $image_id = end( explode( '_', $ad_id ) );
        $img_array = array();
    for ($i=1; $i<=$nr_of_pics; $i++) {
        ${'image_src' . $i} = $image_id.'_'.$i;
        imageSize(${'image_src' . $i}, $i, $category, $img_array);
        }
    }
    echo count($img_array);
    echo $img_array['image_3_width'];

有什么问题?

另外,当我回显你看到的$ img_array元素时,它找不到它,未定义的索引说... 但是当我从INSIDE函数中回显元素时,它会起作用!

如果您需要更多输入,请告诉我,我会更新此问号。

由于

2 个答案:

答案 0 :(得分:2)

更改此行

imageSize(${'image_src' . $i}, $i, $category, $img_array);

$img_array = imageSize(${'image_src' . $i}, $i, $category, $img_array);

你正在函数中返回一个数组但是没有用它做任何事情所以它已经消失了。

答案 1 :(得分:0)

imageSize返回一个数组,我猜应该是累积的'图像数组',所以将$img_array设置为函数的结果:

$img_array = imageSize(${'image_src' . $i}, $i, $category, $img_array);