У меня есть следующий массив:
$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 и должно проходить через мой метод строкового фильтра.
Вы можете использовать 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
)
)
<?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',
),
)