从循环创建php数组,没有键中的大括号

时间:2016-04-19 06:38:03

标签: php arrays loops

我需要根据数据库中找到的计数从for循环中将值推送到数组。

以下是该方案。

$num_images = 5;    
$numb_images = array();
        for ($x = 1; $x <= $num_images; $x++) {

            #$numb_images[] = array('image' . $x => '_image' . $x);
            $numb_images['image' . $x] = "_image" . $x;
        }

当我执行print_r($ numb_images)时,它将打印以下内容

Array ( [image1] => _image1 [image2] => _image2 [image3] => _image3 [image4] => _image4 [image5] => _image5 )

2个问题。 它打印带有我不想要的大括号[]的键。

第二件事是,它们都在同一行打印。

这正是我需要它填充

的方式
$numb_images = array(
        'image1' => '_image1',
        'image2' => '_image2',
    );

所以image1 =&gt; _image1键/对需要从给定的数字循环。

任何帮助都将受到高度赞赏。

由于

1 个答案:

答案 0 :(得分:0)

如果要打印存储在变量中的内容,函数print_r非常有用。它是以正确方式创建的输出变量。

如果您在数组中执行print_r

$numb_images = array(
        'image1' => '_image1',
        'image2' => '_image2',
    );

结果将类似:

Array ( [image1] => _image1 [image2] => _image2 )

所以没有问题。函数print_r打印在数组元素的方括号[]键中。

修改

您需要foreach循环才能显示此字段。假设我们有这样的数组:

$numb_images = array(
        'image1' => '_image1',
        'image2' => '_image2',
        'image4' => '_image4',
        'image6' => '_image6',
    );

现在要在不知道数组大小的情况下打印它,您可以使用foreach

foreach($numb_images as $key => $value)
{
    echo $key . '  ' . $value. '<br/>';
}

输出:

image1 _image1
image2 _image2
image4 _image4
image6 _image6

有关foreach的更多信息:http://php.net/manual/en/control-structures.foreach.php