PHP - 将键添加到分解的多维数组

4

我将尝试为一个多维数组添加键名

当前数组如下:

    $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
        )

)

你能帮助我吗?


2
快速提示:您不能在同一级别上有两个“post”键,并且您已经使用了需要的数组函数来拥有那个关联键,“array_combine”,只需将硬编码的数组组合即可。 - Kevin
你能展示一下POST数据的样子吗? - Jaime
$_POST 添加到问题中。 - Ferrmolina
1个回答

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;
}

工作正常,@Ghost,谢谢。我会在5分钟内接受答案 :) - Ferrmolina
1
@Ferrrmolina 确定很高兴这有所帮助。 - Kevin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接