Php 如何从aarry创建动态数组

Php 如何从aarry创建动态数组,php,arrays,wordpress,Php,Arrays,Wordpress,我想创建一个如下所示的数组: $myData = array ( 'gallery' => array ( 0 => array ( 'title' => 'Bild 1', 'image' => 'https://mysite.de/wp-content/uploads/2019/01/IMG_8797.jpg', ), ), ); 我正在将wordpress与Wedevs

我想创建一个如下所示的数组:

$myData = array (
    'gallery' => array (
        0 => array (
            'title' => 'Bild 1',
            'image' => 'https://mysite.de/wp-content/uploads/2019/01/IMG_8797.jpg',
        ),
    ),
);
我正在将wordpress与Wedevs WPUserFrontendPro表单一起使用。在这个表单中,我上传了一个画廊的图片。图像ID存储在自定义字段中。大概是262256544343343434

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

$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' )
            ),
        ),
    }
);
$myData=array(
“画廊”=>
对于($i=0;$i数组(
“title”=>“Bild 1 Nummer.”$bilderGalerie[$i],
'image'=>wp\u get\u attachment\u image\u src($bilderGalerie[$i],'thumbnail')
),
),
}
);
我得到这个:“语法错误,意外的“}”

有什么建议吗? 非常感谢,
Denis

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

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

即使
$myData
已被定义为附加到
库中或创建并附加到
库中,也可以很好地工作,正如前面提到的,您不能在数组声明中使用for循环

或者,您可以将结果设置为您的值:

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

@emma这不是for循环的结尾吗?但是在数组声明中有一个for循环。那不会的work@Emma嗯,这现在有点棘手了,因为“gallery”只是$myData数组中的一小部分。@Andreas本可以使用
eval()
,但这不是一个好的做法,请告诉我。。。但是你有$key吗?“那是干什么用的?”安德烈亚斯:我以为他们用过,但不,我会去掉的,谢谢@艾玛的基本情况并非如此great@AbraCadaver现在我有点困惑了。我需要这个完整的myData数组,比如:$myData=array('Telefon'=>'test','email'=>'test','icon'=>'test','gallery'=>数组('title'=>'Bild 1','image'=>'',),);我把这个foreach循环放在哪里?不管是在你把其他东西添加到数组之前还是之后。我不明白这一点。您正在调用的函数是什么?
$bilderGalerie
是图像id的数组。您可以使用将每个条目转换为数组本身来映射图像id的集合。由于map函数可以访问该值(图像id),您可以使用该值并将其添加到新创建的数组中。我太笨了,我无法让它工作。即使我将$bilderGalerie设为静态,也不会发生任何事情。不过,谢谢你的帮助。这里面没有
wp\u get\u attachment\u image\u src
。如果你说什么都没发生,这是否意味着你也不会再犯错误了?当你打印($myData)时,你看到了什么您希望发生什么?是否应该将
$myData
分配给某个对象?就我所能检查到的情况而言,这就完成了
$myData[“gallery”]=
非常感谢!!!