我有以下数组:
$data = ['user_first_name:string', 'user_last_name:string', 'user_email:email', 'user_password:password'];
如何将上面的字符串转换为多个数组,每个数组的第一部分为index [0],第二部分为index [1];
因此,“ user_first_name:string”应转换为数组,例如:
array("user_first_name", "string")
一些背景信息: 每个值的第一部分(“ user_first_name”)引用POST字段,第二部分引用在Validate类中使用的方法。例如:user_first_name是我的POST中的一个字段,应该通过我的字符串过滤器方法传递。
答案 0 :(得分:0)
您可以将array_map与explode一起使用:
<?php
$data = ['user_first_name:string', 'user_last_name:string', 'user_email:email', 'user_password:password'];
$data = array_map(function($item) {
return explode(':', $item);
}, $data);
print_r($data);
输出:
Array
(
[0] => Array
(
[0] => user_first_name
[1] => string
)
[1] => Array
(
[0] => user_last_name
[1] => string
)
[2] => Array
(
[0] => user_email
[1] => email
)
[3] => Array
(
[0] => user_password
[1] => password
)
)
答案 1 :(得分:0)
<?php
$data = [
'user_first_name:string',
'user_last_name:string',
'user_email:email',
'user_password:password'
];
foreach($data as $pair)
$output[] = explode(':', $pair);
var_export($output);
输出:
array (
0 =>
array (
0 => 'user_first_name',
1 => 'string',
),
1 =>
array (
0 => 'user_last_name',
1 => 'string',
),
2 =>
array (
0 => 'user_email',
1 => 'email',
),
3 =>
array (
0 => 'user_password',
1 => 'password',
),
)