我有一个类似
的数组Array
(
[select_value_2_1] => 7
)
我想将索引分解为Array ([0]=select_value, [1]=2, [2]=1)
答案 0 :(得分:2)
使用array_keys
获取密钥:
http://php.net/manual/en/function.array-keys.php
或使用foreach循环:
foreach($elements as $key => $value){
print_r (explode("_", $key));
}
答案 1 :(得分:1)
您不能只使用explode()
,因为它还会将select
与value
分开。您可以更改输出,以便使用selectValue_2_1
之类的数组键。
然后你可以做你想做的事:
$items = array('selectValue_2_1' => 1);
foreach ($items as $key => $value) {
$parts = explode('_', $key);
}
这将产生,例如:
array('selectValue', '2', '1');
您可以使用array_keys()从数组中提取密钥。
答案 2 :(得分:1)
或者,如果您想像示例中那样拆分键,请使用更复杂的功能:
foreach ($array as $key=>$value) {
$key_parts = preg_split('/_(?=\d)/', $key);
}
答案 3 :(得分:1)
如果您始终具有确切的模式,则可以使用正则表达式来提取值:
foreach ($array as $key=>$value) {
if(preg_match('/(select_value)_(\d+)_(\d+)/', $key, $result)) {
array_shift($result); // remove full match
}
}
这可能很糟糕,因为你有一个正则表达式和一个数组操作。
答案 4 :(得分:0)
<?php
$arr=array("select_value_2_1" => 7);
$keys= array_keys($arr);
$key=$keys[0];
$new_arr=explode("_",$key);
print_r($new_arr);
?>