从PHP数组中的每个项创建变量

时间:2016-08-09 15:21:32

标签: php arrays

我想逐步浏览PHP数组并为其中的每个条目创建一个变量。我的数组( $ array )如下所示:

Array
(
    [0] => Array
        (
            [first_name] => Arthur
            [last_name] => Dent
            [planet] => Earth
        )

    [1] => Array
        (
            [first_name] => Ford
            [last_name] => Prefect
            [planet] => Betelgeuse
        )

)

我有以下内容:

$0_first_name = $array['0']['first_name'];
$0_last_name = $array['0']['last_name'];

但是这非常耗时,并且意味着我需要显式声明每一个,然后不允许在每个级别的数组中添加额外的条目。

我想知道这样做的最佳方式是什么。

感谢您的帮助

麦克

1 个答案:

答案 0 :(得分:0)

这样的事情应该做我认为你想做的事。

$data=array(
    array('first_name'=>'Arthur','last_name'=>'Dent','planet'=>'Earth'),
    array('first_name'=>'Ford','last_name'=>'Prefect','planet'=>'Betelgeuse')
);

foreach( $data as $i => $arr ){
    foreach( $arr as $key => $value ){
        ${$key.$i}=$value;
        ${$i.'_'.$key}=$value;
    }
}
echo $first_name0, $first_name1, ${'0_first_name'};

显然我在名字后面有一个整数但反转它们并且有$0first_name$0_first_name之类的东西是微不足道的 - 但是在输出它们时需要对它们进行不同的处理 - ${'1_first_name'}等 - 再次,正如已经指出的那样 - 不是可维护性的最佳方法,所以现在我将重新思考我在生活中做出的所有错误决定。