如何在PHP中爆炸数组的索引?

时间:2011-12-01 09:27:35

标签: php arrays string explode

我有一个类似

的数组
Array
(
    [select_value_2_1] =>  7
)

我想将索引分解为Array ([0]=select_value, [1]=2, [2]=1)

5 个答案:

答案 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(),因为它还会将selectvalue分开。您可以更改输出,以便使用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);
?>