有没有一种快速简便的方法来转动这样的东西:
job_details[2]
这是一个字符串,包含在两个变量 $name 和 $index 中,这样:
$name='job_details'
$index=2
编辑:为了澄清,我得到了 job_details[2] 作为一个字符串,就是这样。我想将 job_details 位提取到一个新变量中,并将 2 位提取到一个新变量中。显然我可以用正则表达式做到这一点,但我想知道是否有更好的解决方案。
也许
$name = strtok($input, "[");
$index = strtok("]");
使用正则表达式:
// 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
)
尝试这个:
<?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;
?>
您可以在字符串中使用不同的特殊字符。它也将起作用。