我想爆炸一个字符串,但结果数组有特定字符串作为键而不是整数:
即。如果我有一个字符串“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];
但我想知道是否还有更直接的方法。
非常感谢。
答案 0 :(得分:20)
我会这样使用array_combine:
$fields = array ( 'first_name', 'last_name' );
$arr = array_combine ( $fields, explode ( " ", $str ) );
编辑:我也会选择使用list(),因为它允许你根据需要添加字段而不会使list()调用不必要地长。
答案 1 :(得分:8)
您可以使用list
PHP Manual(Demo):
$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);