我想爆炸一个字符串,但结果数组有特定的字符串作为键,而不是整数:
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);