Array
(
[select_value_2_1] => 7
)
我想爆炸指數爲Array ([0]=select_value, [1]=2, [2]=1)
Array
(
[select_value_2_1] => 7
)
我想爆炸指數爲Array ([0]=select_value, [1]=2, [2]=1)
你不能只用explode()
,因爲它也將value
分離select
的數組。你可以改變你的輸出,而不是你有像selectValue_2_1
這樣的數組鍵。
然後,你可以做你想做的:
$items = array('selectValue_2_1' => 1);
foreach ($items as $key => $value) {
$parts = explode('_', $key);
}
,將產生,例如:
array('selectValue', '2', '1');
您可以使用array_keys()從陣列中提取的關鍵。
謝謝@達仁昌迪辛。我應該使用selectValue而不是select_value。 – maniclorn
使用array_keys
讓你的鑰匙: http://php.net/manual/en/function.array-keys.php
或者使用foreach循環:
foreach($elements as $key => $value){
print_r (explode("_", $key));
}
這也會撕裂'select_value'。 –
@TillHelgeHelwig但在這種情況下的問題是如何獲得作爲一個字符串的關鍵,使OP可以使用它的標準操作 – Marcus
然後,他會創建另一個問題,並要求如何以他想要的方式獲得數組。 ;) –
或者,如果你想鍵拆分爲您的示例中,使用更復雜的功能:
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);
?>
爆炸它。有什麼問題? –
@Col。彈片如何爆炸索引?一串可以爆炸。 – maniclorn
@maniclorn在這種情況下,鍵(索引)也是一個字符串 – Marcus