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


PHP - Using explode() function to assign values to an associative array

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

ie。如果我有一个字符串"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];

是低效的,因为我必须调用两次explosion

或者我可以这样做:

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

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

许多谢谢。

我将像这样使用array_combine:

$fields = array ( 'first_name', 'last_name' );
$arr = array_combine ( $fields, explode ( " ", $str ) );

编辑:我也会选择使用list(),因为它允许你添加字段,如果你需要,而不使list()调用不必要的长。

你可以利用list <一口> PHP手册 (演示):

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

$arr则为:

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

您不能在PHP中执行explode(" ", $str)[0] <= 5.3.

但是,你可以这样做:

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