PHP - 向爆炸的多维数组添加键

时间:2016-02-19 01:30:59

标签: php arrays

我正在尝试将键名添加到爆炸的多维数组中

我有这个:

    $datos = $_POST['dataGeneral'];

    // Detecting "<" delimiter and PHP_EOL:
    /* 
       1<1<Titulo Episodio<Descripción Episodio<http://www.google.com
       1<2<Titulo Episodio 2<Descripción Episodio 2<http://www.google.com 
    */

    $data = explode(PHP_EOL, $datos);
    $num = 0;

    foreach($data as &$val){
        $exp = explode("<", $val);
        $val = array_combine(range($num, $num+sizeof($exp)-1), $exp);
        $num += sizeof($exp);
    }

    echo '<pre>CheckDelimiter:<br/>';
        print_r($data);
    echo '</pre>';

结果:

enter image description here

这个工作正常,但我想为这个数组元素添加键:

这就是我的说法:

Array
(
    [post-1] => Array
        (
            [temporada] => 1
            [episodio] => 1
            [titulo] => Titulo Episodio
            [descripcion] => Descripción Episodio
            [link] => http://www.google.com
        )

    [post-2] => Array
        (
            [temporada] => 1
            [episodio] => 2
            [titulo] => Titulo Episodio 2
            [descripcion] => Descripción Episodio
            [link] => http://www.google.com
        )

)

你能帮我吗?

1 个答案:

答案 0 :(得分:2)

由于您已经拥有所需数组值的基本设置,因此请再次使用array_combine

这次使用您想要的关联键:

$new_data = array();
foreach($data as $k => $val){
    $exp = explode("<", $val);
    // $val = array_combine(range($num, $num+sizeof($exp)-1), $exp);
    // instead of using numeric like above
    $val = array_combine(array('temporada', 'episodio', 'titulo', 'descripcion', 'link'), $exp);
    $new_data['post-' . ($k + 1)] = $val;
}