如何从数组创建动态数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从数组创建动态数组相关的知识,希望对你有一定的参考价值。

我想创建一个这样的ARRAY:

$myData = array (
    'gallery' => array (
        0 => array (
            'title' => 'Bild 1',
            'image' => 'https://mysite.de/wp-content/uploads/2019/01/IMG_8797.jpg',
        ),
    ),
);

我在Wedevs WPUserFrontendPro表单中使用wordpress。在此表单中,我上传了图库的图像。图像ID存储在自定义字段中。像2622,56565,44343,3434这样的东西。

现在我尝试从这个字符串创建一个数组。

$bilderGalerie = explode( ',', $string );

我试过这个:

$myData = array (
    'gallery' =>
    for( $i = 0;$i < count( $bilderGalerie );$i ++ ) {
        array (
            $i => array (
                'title' => 'Bild 1 Nummer'.$bilderGalerie[$i],
                'image' =>  wp_get_attachment_image_src( $bilderGalerie[$i], 'thumbnail' )
            ),
        ),
    }
);

我得到了这个:“语法错误,意外'}'”

有什么建议?非常感谢,丹尼斯

答案

如前所述,您不能在数组声明中使用for循环。

作为替代方案,您可能要做的是将array_map的结果设置为您的值:

$myData = [
    "gallery" => array_map(function ($imgId) {
        return array(
            'title' => 'Bild 1 Nummer' . $imgId,
            'image' => wp_get_attachment_image_src($imgId, 'thumbnail')
        );
    }, $bilderGalerie)
];
另一答案

您不能进出数组声明并执行其他代码。只需在循环内定义数组,尝试foreach

foreach($bilderGalerie as $val) {
    $myData['gallery'][] = array(
        'title' => 'Bild 1 Nummer' . $val,
        'image' =>  wp_get_attachment_image_src($val, 'thumbnail'));
}

即使$myData已被定义为附加或创建并附加到gallery,这也很有效。

以上是关于如何从数组创建动态数组的主要内容,如果未能解决你的问题,请参考以下文章

在android中动态创建选项卡并使用传入的参数加载片段

如何从数组创建动态数组

如何从数组动态创建复选框列表?

(C++) 创建可以从函数访问的动态全局数组/向量

java中如何创建动态数组

考虑到行跨度和列跨度,如何从一维数组创建动态 html 表?