$galleryData = [];
foreach($input['gallery'] as $galleryImg) {
}
我想推入一个带键的数组galleryData数组。
我该怎么做?
我试过了:
$galleryData[] = ['name'=>$galleryImg['file']['name'], 'comment'=> $galleryImg['file']['comment'], 'youtube'=> $galleryImg['file']['youtube']];
但没有运气。
答案 0 :(得分:1)
$galleryData[] = array(
'name'=>$galleryImg['file']['name'],
'comment'=> $galleryImg['file']['comment'],
'youtube'=> $galleryImg['file']['youtube']
);
应该有效
答案 1 :(得分:0)
试试这个:
$galleryData = array_map(function($a) {return $a['file'];},$input['gallery']);
如果还有其他键,请尝试以下变体:
$allowedKeys = array("name","comment","youtube");
$galleryData = array_map(function($a) use ($allowedKeys) {
return array_intersect_key($a['file'],array_flip($allowedKeys));
},$input['gallery']);
考虑到您的更新,不再有这样的捷径。试试这个:
$galleryData = array_map(function($a) {
return array(
"comment"=>$a['comment'],
"name"=>$a['file']['name'],
"youtube"=>$a['file']['youtube']
);
},$input['gallery']);