重写2d数组,其中只包含一些键

时间:2016-07-25 12:02:38

标签: php arrays

我正在使用Animate.css进行Bootstrap轮播,我需要对动画进行排序。

我创建了一个名为$ anims的数组,其中包含所有动画。例如,我想制作一个只包含入口动画的新变量。所以这是我的阵列。

$anims = array(
    "Bouncing Entrances" => array(
        "bounceIn",
        "bounceInDown",
        ....
    ),
    "Bouncing Exits" => array(
        "bounceOut",
        "bounceOutDown",
        ....
    ),
    "Fading Entrances" => array(
        "fadeIn",
        "fadeInDown",
        ....
    ),

    ......
)
$enrtyAnims = ...
?>

处理后应该看起来像这样:

$anims = array(
    "Bouncing Entrances" => array(
        "bounceIn",
        "bounceInDown",
        ....
    ),
    "Fading Entrances" => array(
        "fadeIn",
        ....
    )
)

但我不知道怎么用钥匙做。 我希望能够说我想要一个带有键X和Y的新数组,它就可以实现。

2 个答案:

答案 0 :(得分:2)

你可以简单地使用array_filter函数和第三个标志参数以及标志ARRAY_FILTER_USE_KEY,这样你的代码看起来像

$result_array = array_filter($anims,function($k){ 
                     return (strpos($k,"Entrances") !== false);
                },ARRAY_FILTER_USE_KEY);
  

注意:作为第三个参数的标志在PHP版本> = 5.6.0

中引入

Demo

答案 1 :(得分:1)

按键访问所需的元素,并使用这些项创建一个新数组,如下所示:

$anims = array(
    'Bouncing Entrances' => $anims['Bouncing Entrances'],
    'Fading Entrances' => $anims['Fading Entrances'],
    // ...
);
编辑:忘了保存钥匙。 如果您想要过滤动画的某种模式,可以使用array_filter()函数,就像@Uchiha说的那样。