我想爆炸一个字符串,但结果数组有特定的字符串作为键而不是整数:
即.如果我有一个字符串"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()调用不必要地长.
您可以使用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)
你不能explode(" ", $str)[0]用PHP <= 5.3.
但是,您可以这样做:
list($arr['first_name'], $arr['last_name']) = explode(" ", $str);
Run Code Online (Sandbox Code Playgroud)