我要创建一个这样的阵列:
$myData = array (
'gallery' => array (
0 => array (
'title' => 'Bild 1',
'image' => 'https://mysite.de/wp-content/uploads/2019/01/IMG_8797.jpg',
),
),
);
我正在将Wordpress与Wedevs WPUserFrontendPro Form一起使用。通过这种形式,我上传了画廊的图像。图像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' )
),
),
}
);
我得到这个:“语法错误,意外的'}'”
有什么建议吗? 非常感谢, 丹尼斯
答案 0 :(得分:2)
您不能闯入和退出数组声明并执行其他代码。只需在循环内定义数组,请尝试foreach
:
foreach($bilderGalerie as $val) {
$myData['gallery'][] = array(
'title' => 'Bild 1 Nummer' . $val,
'image' => wp_get_attachment_image_src($val, 'thumbnail'));
}
即使$myData
已被定义为追加或创建并追加到gallery
,此方法也能很好地工作。
答案 1 :(得分:2)
如上所述,您不能在数组声明中使用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)
];