0

有没有一种快速简便的方法来转动这样的东西:

job_details[2]

这是一个字符串,包含在两个变量 $name 和 $index 中,这样:

$name='job_details'
$index=2

编辑:为了澄清,我得到了 job_details[2] 作为一个字符串,就是这样。我想将 job_details 位提取到一个新变量中,并将 2 位提取到一个新变量中。显然我可以用正则表达式做到这一点,但我想知道是否有更好的解决方案。

4

3 回答 3

2

也许

$name = strtok($input, "[");
$index = strtok("]");
于 2013-10-14T04:15:35.823 回答
0

使用正则表达式:

// Search the string
preg_match_all('/([_\w]*)\[([^]]*)\]/', 'job_title[1], job_details[2]', $matches);

// $matches[1] holds your values
// $matches[2] holds your keys
print_r($matches);

// Combine then into a nice array
$data = array_combine($matches[2], $matches[1]);

print_r($data);

这应该是输出:

Array
(
    [0] => Array
        (
            [0] => job_title[1]
            [1] => job_details[2]
        )

    [1] => Array
        (
            [0] => job_title
            [1] => job_details
        )

    [2] => Array
        (
            [0] => 1
            [1] => 2
        )

)
Array
(
    [1] => job_title
    [2] => job_details
)

供您参考:preg_match_all()array_combine()

于 2013-10-14T04:42:06.647 回答
0

尝试这个:

<?php
        $string = 'job_details[2]';
        $str_arr = explode('[', $string);

        $var_value = $str_arr[0];
        $index_value = $str_arr[1];
        $index_value = trim($str_arr[1], '[]');
        echo $var_value."<br />";

        echo $index_value;
        ?>

您可以在字符串中使用不同的特殊字符。它也将起作用。

于 2013-10-14T04:43:09.013 回答