定界并将数组拆分为新数组

时间:2018-11-01 19:59:45

标签: php arrays split delimiter

我有以下数组:

$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中的一个字段,应该通过我的字符串过滤器方法传递。

2 个答案:

答案 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',
    ),
)