将多阵列推送到阵列?

时间:2013-09-27 16:15:56

标签: php

$galleryData = [];  
foreach($input['gallery'] as $galleryImg) {


}

我想推入一个带键的数组galleryData数组。

我该怎么做?

我试过了:

$galleryData[] = ['name'=>$galleryImg['file']['name'], 'comment'=> $galleryImg['file']['comment'], 'youtube'=> $galleryImg['file']['youtube']];

但没有运气。

2 个答案:

答案 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']);