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

Joe*_*Joe 5 php

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

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

$arr['first_name'] = "Joe";
$arr['last_name'] = "Bloggs";
Run Code Online (Sandbox Code Playgroud)

此刻,我可以这样做:

$str = "Joe Bloggs";
$arr['first_name'] = explode(" ", $str)[0];
$arr['last_name'] = explode(" ", $str)[1];
Run Code Online (Sandbox Code Playgroud)

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

或者我可以这样做:

$str = "Joe Bloggs";
$arr = explode(" ", $str);
$arr['first_name'] = $arr[0];
$arr['last_name'] = $arr[1];
Run Code Online (Sandbox Code Playgroud)

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

非常感谢.

Jon*_*set 20

我会像这样使用array_combine:

$fields = array ( 'first_name', 'last_name' );
$arr = array_combine ( $fields, explode ( " ", $str ) );
Run Code Online (Sandbox Code Playgroud)

编辑:我也会选择使用list(),因为它允许您根据需要添加字段而不会使list()调用不必要地长.


hak*_*kre 8

您可以使用list PHP手册(演示):

$str = "Joe Bloggs";
list($arr['first_name'], $arr['last_name']) = explode(" ", $str);
Run Code Online (Sandbox Code Playgroud)

$arr 然后是:

Array
(
    [last_name] => Bloggs
    [first_name] => Joe
)
Run Code Online (Sandbox Code Playgroud)


Dog*_*ert 6

你不能explode(" ", $str)[0]用PHP <= 5.3.

但是,您可以这样做:

list($arr['first_name'], $arr['last_name']) = explode(" ", $str);
Run Code Online (Sandbox Code Playgroud)