PHP - 使用explode()函数将值赋给关联数组

时间:2011-07-25 10:32:25

标签: php

我想爆炸一个字符串,但结果数组有特定字符串作为键而不是整数:

即。如果我有一个字符串“Joe Bloggs”,我想爆炸它,以便我有一个关联数组,如:

$arr['first_name'] = "Joe";
$arr['last_name'] = "Bloggs";

此刻,我可以做到:

$str = "Joe Bloggs";
$arr['first_name'] = explode(" ", $str)[0];
$arr['last_name'] = explode(" ", $str)[1];

这是低效的,因为我必须两次调用爆炸。

或者我能做到:

$str = "Joe Bloggs";
$arr = explode(" ", $str);
$arr['first_name'] = $arr[0];
$arr['last_name'] = $arr[1];

但我想知道是否还有更直接的方法。

非常感谢。

3 个答案:

答案 0 :(得分:20)

我会这样使用array_combine

$fields = array ( 'first_name', 'last_name' );
$arr = array_combine ( $fields, explode ( " ", $str ) );
编辑:我也会选择使用list(),因为它允许你根据需要添加字段而不会使list()调用不必要地长。

答案 1 :(得分:8)

您可以使用list PHP ManualDemo):

$str = "Joe Bloggs";
list($arr['first_name'], $arr['last_name']) = explode(" ", $str);

$arr然后是:

Array
(
    [last_name] => Bloggs
    [first_name] => Joe
)

答案 2 :(得分:6)

您不能在PHP< = 5.3。

中执行explode(" ", $str)[0]

但是,你可以这样做:

list($arr['first_name'], $arr['last_name']) = explode(" ", $str);