我有一个像这样的数组
Array
(
[select_value_2_1] => 7
)
我想将索引分解为
Array ([0]=select_value, [1]=2, [2]=1)
使用
array_keys
获取钥匙:
http://php.net/manual/en/function.array-keys.php
或者使用 foreach 循环:
foreach($elements as $key => $value){
print_r (explode("_", $key));
}
您不能只使用
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() 从数组中提取键。
或者,如果您想像示例中那样拆分键,请使用更复杂的函数:
foreach ($array as $key=>$value) {
$key_parts = preg_split('/_(?=\d)/', $key);
}
如果您始终拥有精确的模式,则可以使用正则表达式来提取值:
foreach ($array as $key=>$value) {
if(preg_match('/(select_value)_(\d+)_(\d+)/', $key, $result)) {
array_shift($result); // remove full match
}
}
这样做的性能可能会很差,因为你有一个正则表达式和一个数组操作。
<?php
$arr=array("select_value_2_1" => 7);
$keys= array_keys($arr);
$key=$keys[0];
$new_arr=explode("_",$key);
print_r($new_arr);
?>